Besvara de elektroniska frågorna (se kurshemsidan). Läs kapitel i kursbok.

Relevanta dokument
Besvara de elektroniska frågorna (se kurshemsidan). Läs kapitel i kursbok

Datorarkitekturer med operativsystem

Datorsystemteknik DVGA03 Föreläsning 8

SKAPA DET FÖRSTA PROJEKTET I mikrobasic PRO for AVR

CPU. Carry/Borrow IX. Programräknare

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.

Grundläggande datavetenskap, 4p

NetBeans 5.5. Avsikt. Projektfönster

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

DatorsystemteknikDAVA14 Föreläsning 9

Lösningar till tentamen i EIT070 Datorteknik

Eclipse. Avsikt. Nu ska ett fönster liknande figuren till höger synas.

NetBeans 7. Avsikt. Projektfönster

Stack och subrutiner Programmeringskonventionen

Laboration 1. "kompilera"-ikonen "exekvera"-ikonen

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

Programmering i maskinspråk (Maskinassemblering)

Programmering i maskinspråk (Maskinassemblering)

PC-teknik, 5 p LABORATION ASSEMBLERINTRODUKTION

Flödesschema som visar hur man använder Quartus II.

Det finns en handledning till kortet på hemsidan. AVR STK500.

IT för personligt arbete F5

Datorarkitekturer med operativsystem ERIK LARSSON

ÄNDRA EN LÄNK. Guiden förutsätter att det finns en artikel med en redan skapad textlänk som ska ändras.

Introduktion till programmering och Python Grundkurs i programmering med Python

Datorarkitektur I. Tentamen Lördag 10 April Ekonomikum, B:154, klockan 09:00 14:00. Följande gäller: Skrivningstid: Fråga

Tentamen den 18 mars svar Datorteknik, EIT070

Tentamen i EIT070 Datorteknik

Tidtagning med Eresults Lite programmet

Manual Attestering av fakturor på webb

Laboration 1. "kompilera"-ikonen "exekvera"-ikonen

SKAPA DET FÖRSTA PROJEKTET I mikrobasic PRO for PIC

Så här skriver du ditt första program i C++

Datorsystem Laboration 2: Minnesmappade bussar

Introduktion till syntesverktyget Altera Max+PlusII

Laboration 10 - Eclipse

Datorsystemteknik DAV A14 Föreläsning 1

Lunds Universitet LTH Ingenjörshögskolan IDa1, IEa1 Helsingborg. Laboration nr 4 i digitala system ht-15. Ett sekvensnät. grupp. namn.

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php

LABORATION DATORTEKNIK D. Pipelining. Namn och personnummer. Version: (OS,OVA,AN)

Inledande programmering med C# (1DV402) Ditt första C#-program med Visual Studio

AVR Studio 4 Och AVRFLASH

Lösningar till tentamen i EIT070 Datorteknik

Workshop IBA internet based assessment

TDDC77 Objektorienterad Programmering

Objektorienterad Programmering (TDDC77)

CE_O3. Nios II. Inför lab nios2time

Laboration 10 - NetBeans

Labora&on 1 Introduk&on &ll utvecklingsmiljön övningar/uppgi<er

Lösningar till tentamen i EIT070 Datorteknik

Program. Kapitel make Program Interpreterande och kompilerande program

ATT LÄGGA TILL KONTROLLPUNKTER I DIN KONTROLLPLAN! Klicka på Kontrollplans knappen.

Installationsanvisning för Su Officemallar 2011 För Mac Word och PowerPoint

Manual Attestering av fakturor på webb

Labora&on 2 HTML och validering övningar/uppgi:er

Innehållsförteckning. 9 Större projekt Övningsuppgifter...32

Travel Phrase Guide. Instruktionshäfte

LADDA UPP EN PDF-FIL OCH LÄNKA TILL DEN I DIN ARTIKELTEXT

Installationsanvisning för Su Officemallar 2011 För Mac Word och PowerPoint

Objektorienterad programmering i Java I

Föreläsning 1: Intro till kursen och programmering

Inlämningsverktyget i Fronter för studenter

Institutionen för elektro- och informationsteknologi, LTH

Datorteknik. Föreläsning 3. Assembler, stack och subrutiner, programmeringskonventionen. Institutionen för elektro- och informationsteknologi, LTH

Föreläsning 3. Programmering, C och programmeringsmiljö

Översättningsminnen laboration

Översättningsminnen laboration

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock

TSEA28 Datorteknik Y (och U)

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Föreläsning 1: Intro till kursen och programmering

AVR 5. Styrning av trafikljus. Digitala system 15 p

Home Nerladdning typsnitt Ladda Ladda fonter Menyn Skrivare Menyn teckensnitt Menyn Verktygsfält Menyn Hjälp Snabbtangenter

Mål. Datorteknik. Innehåll. Innehåll (forts) Hur ser ett program ut? Hur skapas maskinkoden?

Microsoft Visual Studio 2017

Digitala System: Datorteknik ERIK LARSSON

Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad. Skriv ditt idnummer på varje blad (så att vi inte slarvar bort dem).

Datorteknik 2 (AVR 2)

Laboration 1 Introduktion till Visual Basic 6.0

En Von Neumann-arkitektur ( Von Neumann-principen i föreläsning 1) innebär:

Komponenter med COM (och COM+/VC++ 7.0)

Digital- och datorteknik

Introduktion till användning av PicoLog TC-08

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

Verktyg och Utvecklingsmiljö. Föreläsning 2 Eclipse

Välkommen! Lycka till! ecampus min väg till KNX

Programinstallation Datorbaserat handsmörjningssystem

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

AVR 3 - datorteknik. Avbrott. Digitala system 15 hp. Förberedelser

OOP Objekt-orienterad programmering

General Purpose registers ALU I T H S V N Z C SREG. Antag att vi behöver skriva in talet 25 till register R18

Ladda upp filer fra n PLC till PC

Labora&on 1 Introduk&on &ll utvecklingsmiljön övningar/uppgi<er

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

LABORATION DATORKONSTRUKTION TSEA83 UART. Namn och personnummer. Version: (OS)

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

Kursupplägg. Examination. Föreläsning 1: Intro till kursen och. Kursmaterial. programmering. Kursboken: Programmera med a multimedia approach

Extra lab. Nu på fredag kl 8-12 Frivillig Enbart hjälp med projektuppgiften Ingen examination

Pipelining i Intel Pentium II

Transkript:

Namn: Laborationen godkänd: Laboration 3. Pipeline Laborationens syfte I laborationen ska du bekanta dig med pipelining. Genom laborationen fås kunskap om hur pipelines är konstruerade och hur de används. Efter labo- rationen kommer du att förstå hur datorns pipeline fungerar och vilka pa- rametrar som påverkar en pipeline. Förberedelser Besvara de elektroniska frågorna (se kurshemsidan). Läs kapitel i kursbok. Redovisning Demonstrera dina lösningar för laborationsassistenten och lämna in labo- rationsrapport med källkod. OBS, använd försättsbladet (se kurshemsidan). Godkänt Laborationen är godkänd när följande moment är avklarade: de elektroniska frågorna är besvarade labborationen är demonstrerad labborationsrapporten godkänd Erik Larsson

Laborationsmiljö För denna laboration behövs: MipsIt.exe (för programutvecklingen) och MipsPipeS.exe (för simuleringen) Ladda ner MIPSIt (finns på hemsidan). Packa upp filen. Starta Mipsit.exe i mappen \bin. Ignorera popup- fönstret med texten: "Failed to open COM- port...". Tänk på följande: Spara filer i hemmakatalog. Skapa en ny projektfil för varje nytt program. Spara det gamla projektet innan du skapar ett nytt. Undvik mellanrum och konstiga tecken i mappar och filnamn. Komma igång Starta MipsIt (i mappen \bin) Skapa under File New ett nytt assemblerprojekt. Skapa en ny mapp skapas med samma namn. Skapa en ny assemblerfil. Studera nedanstående program som utför additionen 2 + 3 = 5. Först laddas värdet 2 i register $8, sedan laddas talet 3 i register $9 och slutligen adderas innehållen i dessa båda register och resultatet läggs i register $10. Den första raden i programlistningen är en kommentarrad. Den inleds alltid med tecknet #. De fyra efterföljande raderna består av direktiv som bestämmer hur programmet ska översättas av assemblern. Namnet start utgör en symbol för en adress; det är an- vändbart ifall man vill referera till denna adress utan att känna till dess verkliga värde. De tre följande raderna är programmets verkliga instruktioner. # Laboration 1, Hemuppgift 1 # Ändra inte instruktionernas ordning # Instruktioner skapas # start är en global symbol # Programmet börjar vid start # Dina kommentarer: li $8, 0x2 #... li $9, 0x3 #... add $10, $8, $9 #... # Markerar slutet på programkoden 2

Skriv in programmet ovan. Översätt programmet till maskinkod med kommandot Build (snabbtangenten F7). Rätta eventuella fel. Starta MipsPipeS.exe Ladda upp programmet till simulatorn (snabbtangenten F5). Instruktionerna kommer att läggas i simulatorns RAM från adress 0x80020000. Klicka upp Mips- simulatorn och klicka på rutan RAM. Titta på pipelinen genom att klicka på CPU. Provkör. Laborationsuppgifter Uppgift 1 Studera instruktioners exekvering i en pipeline. Studera instruktionerna: add t0, t1, t2 sw t0, 4(t1) beq t0, t1, dest Använd programmet nedan där add t0, t1, t2 används. Skriv in programmet nedan, kompilera, och simulera. För de andra instruktionerna, ersätt add t0, t1, t2 med respektive instruktion. add t0, t1, t2 För varje instruktion, besvara följande. Vilka pipelinesteg är aktiva vid respektive instruktion? 3

Svar: add=, sw=, beq= Hur många klockcykler tar varje instruktion? Svar: add=, sw=, beq= Vilka aritmetiska operationer utför CPU:n? Svar: add=, sw=, beq= Uppgift 2 Studera konflikter i en pipeline. Deluppgift 2.1 Studera programmet nedan. Om, t2 har adressen till var1, vad kommer fin- nas lagrat på adressen var1 efter exekvering? Svar:.data var1:.word 5 lw t0, 0(t2) addi t0, t0, 1 sw t0, 0(t2) Skriv in programmet ovan, kompilera och ladda upp till simulatorn. Sätt adressen till var1 i t2 genom menyn: View- >Register. Exekvera program- met. Vad får du för resultat? Och varför? Svar: Ändra programmet enligt nedan och provkör. 4

.data var1:.word 5 lw t0, 0(t2) addi t0, t0, 1 sw t0, 0(t2) Konfliken i exemplet är en? Svar: Deluppgift 2.2 Studera programmet nedan. Om t1 innehåller 1 och t2 innehåller 2, vad bör t1 innehålla när programmet exekverat klart? Svar: add t1, t2, t1 addi t1, t1, 5 5

Skriv in programmet ovan, kompilera och ladda upp till simulatorn. Sätt in- nehåll i register genom menyn: View- >Register. Exekvera programmet. Vad får du för resultat? Och varför? Svar: Ändra i programkoden så att resultatet blir som förväntat. Deluppgift 2.3 Studera programmet nedan. Om t1 innehåller 0 och t2 innehåller 0, vad gör programmet? Svar: beq t1, t2, start addi t1, t1, 1 Ändra i programmet enligt följande: blir:.set reorder Vad händer med maskinkoden? Svar: Uppgift 3 Studera kodoptimering Studera programmet nedan. Om t1, t2, t3, t4, t5, och t6 är 0 initialt, vad är förväntas de vara efter programmet exekverat? Svar: t1=, t2=, t3=, t4=, t5=, t6= 6

Skriv in programmet och exekvera det. Vad antar registren för värden? Svar: t1=, t2=, t3=, t4=, t5=, t6= Ändra ordningen på instruktionerna i programmet nedan så att resultatet blir korrekt samt att antal minimeras. addi t2, t2, 1 jump: addi t1, t1, 1 beq t1, t2, jump addi t6, t6, 1 7