To mikroarkitekturer til MIPS Karakteropgave på Maskinarkitektur 1B



Relaterede dokumenter
DATALOGI 1E. Skriftlig eksamen torsdag den 3. juni 2004

DATALOGI MASKINARKITEKTUR Blok 2 samt Reeksamination i DATALOGI MASKINARKITEKTUR Blok 1 og arkitekturdelen af DATALOGI 1E

Dat1E K1-1 - En pipelinet mikroarkitektur. Espen Højsgaard Rune Højsgaard Christian Iversen

DATALOGI 1E. Skriftlig eksamen fredag den 7. juni 2002

DATALOGI MASKINARKITEKTUR

DATALOGI 1E. Skriftlig eksamen mandag den 23. juni 2003

DATALOGI 1E. Vejledende løsninger til Skriftlig eksamen fredag den 7. juni 2002

Dat1E G2 - En enkelt/dobbelt-cyklus mikroarkitektur. Espen Højsgaard Rune Højsgaard Christian Iversen

MIPS, registerallokering og MARS

Maskinsprog. Martin Zachariasen, DIKU. Programmer og ordrer. Ordretyper. Operander og deres placering. Ordreformat. Procedurekald. Andre arkitekturer

MIPS modulet og registerallokatoren

DATALOGI 1E. Vejledende løsninger til Skriftlig eksamen mandag den 28. maj min min min min.

K1 - En pipelinet mikroarkitektur

Processoren: Enkelt-cyklus implementation

DATALOGI 1E. Skriftlig eksamen fredag d. 16. januar 2004

Processoren: Fler-cyklus implementation

Oversættere Skriftlig eksamen onsdag d. 25. januar 2006

Datalogi 1F rapportopgave K2 Anonym datakommunikation

Lærevejledning. - en introduktion til maskinarkitektur. faraz@butt.dk Faraz Butt mads@danquah.dk Mads Danquah doktor@dyregod.dk Ulf Holm Nielsen

Kom godt igang med Inventar registrering

Miniprojekt i Programmering (MIP) for DAT2 og SW2, Forår 2012

LUT. Lederuddannelse og træning. Ledelsens vejledning. DI-version

Kursistmanual til Større skriftlig opgave. 2 Hf,

Sign of safety SOS. Pædagogisk dag 26. marts 2013

Eksamen forår og sommer 2014

Indholdsfortegnelse :

24. maj Kære censor i skriftlig fysik

Computer og print ved skriftlige prøver på Laursens Realskole

Basal statistik for lægevidenskabelige forskere, forår 2014 Udleveret 4. marts, afleveres senest ved øvelserne i uge 13 (25.

EKSAMENSPROJEKT. Problemformulering, synopsis og synopsiseksamen

ProSik case, DONG Energy.

Dansk-historie-opgave 1.g

Uge 25: Verden omkring mig. Baseret på førskoleprogrammet HippHopp Uge 25 Verden omkring mig side 1 HIPPY

Computerarkitektur. - en introduktion til computerarkitektur med LINDA

Til 2hf ang. den større skriftlig opgave

Eksamen forår og sommer 2015

Til 2hf ang. den større skriftlig opgave

DM507 Algoritmer og datastrukturer

Indholdsfortegnelse. Indholdsfortegnelse.. side 2. Adgang til webgraf 3. Opslag adresse Styring af layout.. 5. Zoom funktioner..

Underbilag 14 C: Afprøvningsforskrifter til prøver og tests

DM507 Algoritmer og datastrukturer

AVR MP Ingeniørhøjskolen i Århus Michael Kaalund

RETNINGSLINJER OM PRAKTISKE OG PROCEDUREMÆSSIGE FORHOLD VEDRØRENDE PRØVEAFHOLDELSEN

Udarbejdelse af synopsis: 21. april 8. maj Mundtlig årsprøve: Maj/juni 2015

KAPITEL 8: OPRETTELSE OG ADMINISTRATION AF DOKUMENTGODKENDELSE

TRUST 460L MOUSE OPTICAL OFFICE

Netprøver.dk. Brugervejledning for elever

DATALOGI 1E. Vejledende løsninger til Skriftlig eksamen mandag den 23. juni 2003

Det gyldne snit, forløb i 1. g

KOMPONENT BESKRIVELSE

Fig. 1 Billede af de 60 terninger på mit skrivebord

Lærebog. Datalogi 1F Forår Hvad sker hvornår? Kursusbøger. Planen for idag. Hvad er et operativsystem

SRP Retningslinjer for studieretningsprojekter ved Holstebro Tekniske Gymnasium

Sproget Six. Til brug i rapportopgaven på kurset Oversættere. Vinter Abstract

Borgerrådgiverens undersøgelse af Doc2mail og tilgængelighed for synshandicappede og svage læsere, forvaltningens sagsnr.

Online-timeseddelregistrering

Bestemmelser vedrørende prøver for pædagoguddannelsen

Studieretningsprojektet i 3.g 2007

BAT Installationsvejledning. Version 1.0

DM507 Algoritmer og datastrukturer

Kom/IT rapport Grafisk design Anders H og Mikael

Vejledning til aflevering og fremsendelse af afsluttende opgave December 2013

DATALOGI 1E. Vejledende løsninger til Skriftlig eksamen torsdag den 16. januar 2003

forventningsko og oplevelseskort

SIKKER CYKLIST digitalt undervisningsmateriale

LEGO minifigs byg kolleger/kendte personer

Design og funktionel prototype

Kravspecifikation Bilag A Rejsekort

NGG Nordsjællands Grundskole og Gymnasium. Kortlægning og analyse af faktorer for valg af gymnasium blandt 9. og 10. klasses elever og deres forældre

Hvordan laver jeg en poster/plakat og handout

Nyheder i Remote Support Platform 3.0

K-opgave i faget multimedietekologi, foråret 2004 Fremstilling af multimediebaseret præsentation

Installér din Officepakke 2013

Rapport om viden om investeringsforeningsbeviser. hos rådgivere. i danske pengeinstitutter

T A L K U N N E N. Datasæt i samspil. Krydstabeller Grafer Mærketal. INFA Matematik Allan C

Spil om LEDELSE. Rigtig god fornøjelse!

Sweex Powerline 200 Adapter

IT Support Guide. Installation af netværksprinter (direkte IP print)

Christianshavns Gymnasium Studieretningsopgaven i 2.g (SRO) januar- marts 2014 VEJLEDNING

Kursusmappe. HippHopp. Uge 23: Min krop. Vejledning til HippHopp guider HIPPY. Baseret på førskoleprogrammet HippHopp Uge 23 Min krop side 1

Test- og prøvesystemet

Xdont version X / Psykolog Rev:

Installationsvejledning til LMeSmartClient

Baggrund og løsningsbeskrivelse DUBU 2.0

Prøvevejledning for grundforløbsprøven, rettet mod Socialog sundhedsuddannelsen

Kom i gang-opgaver til differentialregning

Tilfredshedsundersøgelse Brugere og pårørende. Bofællesskaber og støttecenter Socialpædagogisk Center

Dokumentation af næsehorn der jager giraf der kører på en motorcykel

DM13-3. Obligatorisk opgave E.05 Håndoptimering af SPARC assembler-kode

Versionsbrev. LUDUS Web version Den 4. april J.nr V

2009 Priser & vilkår 31/10/2008

Skriftsprogsvanskeligheder klasse

Indholdsfortegnelse. Vokal Command v.1 manual

En vej til tilfredse kunder og glade medarbejdere i en profitabel organisation

1 System oversigt Enheder Prioritering af signaler... 4

6. klasse. Børnearbejde

Studieretningsprojektet. * Rammer og procedurer * Lærernes hæfte * Skoleåret

Der er derfor, for at alle kan sende, kun tilladt, at sende intermitterende. Altså korte pakker. ( Dette skal dog verificeres!!)

Digital Kommuneplan. Kravsspecifikation gennem brugerinvolvering

Elevplansværktøjet Guide til Elevplansværktøjet Version 3 - oktober 2009

Transkript:

To mikroarkitekturer til MIPS Karakteropgave på Maskinarkitektur 1B Martin Zachariasen 10. september 2004 1 Introduktion Dette er den karaktergivende rapportopgave på kurset Maskinarkitektur 1B, efterår 2004. Opgaven skal løses i grupper på indtil 3 personer. Opgaven bliver stillet tirsdag d. 14. september 2004 kl. 13.00 og skal afleveres i 1.dels administrationen i 2 eksemplarer senest onsdag d. 20. oktober 2004 kl. 10.00. Alle programmer og testdata brugt i rapporten skal være tilgængelige i et katalog med navnet bruger/kark, hvor bruger er den 1. delskonto som er nævnt på forsiden. Der må ikke rettes i disse filer efter afleveringen. 2 Om opgaven To forskellige mikroarkitekturer, der kan udføre en udvalgt delmængde af MIPS ordresættet skal designes, implementeres og analyseres. Den ene mikroarkitektur skal have en enkelt-cyklus datavej, imens den anden skal være pipelinet. Begge mikroarkitekturer skal implementeres i Kreds. 3 MIPS ordresæt Begge mikroarkitekturer skal kunne udføre følgende MIPS maskinkodeordrer: 1

Kategori R-type Hop I-type Lagertilgang Særligt Ordrer add, sub, slt, and, or beq, bne, jr, jal, j addi, slti, andi, ori lw, sw stop Ordren stop er ikke en rigtig MIPS ordre, men en ordre tilføjet til brug i opgaverne på Maskinarkitektur. Den indkodes som FC000000 hexadecimalt. Indkodningen af de øvrige ordrer fremgår af COD [1], side 153 og Appendix A. Udførelse af stop ordren afslutter simulationen. Der skal ikke undersøges for overløb (i forbindelse med add, sub eller addi) eller genereres exceptions. Dog skal slt og slti altid fungere korrekt. Bemærk at ordrerne addi og slti anvender fortegnsforlængelse af den indlejrede 16-bit konstant, mens andi og ori anvender nul-forlængelse. 4 Enkelt-cyklus mikroarkitektur Der skal implementeres en enkelt-cyklus mikroarkitektur som beskrevet i COD afsnit 5.1 til 5.3. Især henledes opmærksomheden på at figur 5.29 side 372 i COD kan anvendes som udgangspunkt. Bemærk at I-typeordrerne samt bne, jr og jal ikke kan udføres af denne mikroarkitektur, hvorfor den må udvides til også at kunne håndtere disse. Til implementationen skal hardware- og simulationssproget Kreds anvendes. Installationen af Kreds på DIKUs førstedelssystem er beskrevet i kursusbogen [2] samt på kursets hjemmeside. Der skal implementeres en aritmetisk-logisk enhed (ALU) som en sammensat byggeklods i Kreds. Byggeklodsen skal have antal databit (=størrelse) som parameter. Benyt interfacet som er beskrevet i eksempel 6.6 i kursusbogen, men erstat implementationen med en der resulterer i en bedre ydelse. Byggeklodsen IdealMemIOSys skal anvendes til data- og programlager. Konfigurer byggeklodsen til at have en tilgangstid på 5 ns. Bemærk at udførelse af en hent-ordre (lw), der læser fra adresse FFFFFFF0 fører til indlæsning fra tastaturet, mens udførelse af en gem-ordre (sw), der skriver til adresse FFFFFFF4 fører til udskrivning til skærmen; se også eksempel 3.13 i kursusbogen. Simulationen stoppes ved at anvende SimSysCtrl byggeklodsen, som er beskrevet på side 91 i kursusbogen. 2

5 Pipelinet mikroarkitektur Der skal også implementeres en pipelinet mikroarkitektur med genveje (eng: forwarding) som beskrevet i COD afsnit 6.1 til 6.6. Det anbefales at tage udgangspunkt i figur 6.30 side 470 i COD og inkrementelt udvide mikroarkitekturen. Datavejen (excl. arbejdslager og cache) må maximalt bruge 200.000 transistorer; dette tal oplyses af Kreds/SimSys ved kørsel. Data- og programlager implementeres ved brug af byggeklodsen MemIOSys. Som udgangspunkt kan følgende instantiering af lageret benyttes: mem{memiosys 7 5 5 100 3 0} Latenstiden for læsning af et enkelt maskinord fra lageret er 100 ns, mens latenstiden for læsning af efterfølgende ord fra lageret er 3 ns. Desuden skal størrelsen af ordreporten være 4 bytes. Cache-parametrene kan vælges frit under den betingelse, at transistorforbruget er maximalt 500.000 transistorer. Dette tal oplyses af Kreds/SimSys ved anvendelse af option -v til jeres simulationsprogram. Hvis I ikke benytter ovennævnte cache-parametre, skal I kort kommentere jeres valg. 6 Værktøj og testprogrammer Til hjælp til besvarelse af opgaven stilles følgende faciliteter (udover Kreds) til rådighed: masm, en makroassembler der oversætter fra symbolsk maskinsprog (filer med suffix asm ) til et format kaldet hex-kode (filer med suffix hex ). mips, en referencesimulator for en delmængde af MIPS maskinsproget. mips læser og udfører filer genereret med masm. Endvidere kan mips bruges til at lave filer med spor af udførelsen. Disse filer kan så bruges af Kreds til at validere udførelsen. Disse faciliteter er nærmere beskrevet på kursets hjemmeside. 3

7 Krav til besvarelsen 7.1 Generelt Der lægges især vægt på velargumenterede og velbeskrevne metoder og valg. Desuden lægges der vægt på korrektheden af den implementerede enkelt-cyklus mikroarkitektur, og nogen vægt på korrektheden af den pipelinede miktroarkitektur. Der lægges kun begrænset vægt på mikroarkitekturernes ydeevne men man bør redegøre for klare ydelsesmæssige svagheder i det valgte design. Udover udskrifter må rapporten maksimalt fylde 30 sider. 7.2 Sporfacilitet Til verifikation af maskinarkitekturernes korrekthed skal spor-faciliteten i Kreds anvendes. Denne facilitet er beskrevet afsnit 5.6 i kursusbogen. Skrivning til registrene kan valideres ved brug af byggeklodsen ValidateWrite. Skrivning til lager og I/O vil automatisk blive valideret af hukommelsesbyggeklodserne IdealMemIOSys og MemIOSys, hvis spor-faciliteten anvendes. Bemærk at hvis spor-faciliteten anvendes, vil Kreds ikke læse fra tastaturet og skrive til skærmen, men i stedet foretage indlæsning fra spor-filen, og validere udskrivning ved hjælp af spor-filen. 7.3 Signalforsinkelser Klokcyklustiden bestemmes af de længste signalveje i mikroarkitekturen. Ved at analysere signalforsinkelser kan man få et indtryk af, hvordan ændringer i mikroarkitekturen kan påvirke klokcyklustiden. Kreds/SimSys ressourcemodel skal bruges til at undersøge kvaliteten af den udarbejdede mikroarkitektur. De signalveje og komponenter der er bestemmende for mikroarkitekturens maximale arbejdsfrekvens skal udpeges. Signalveje og komponenter der er relativt tæt på at være bestemmende for klokcyklustiden skal også udpeges. Overvej hvordan den længste signalvej kan afkortes; denne overvejelse kan undlades hvis dette spørgsmål allerede er behandlet under beskrivelsen af designet. 4

7.4 Test- og benchmarkprogrammer Til brug for indkøring udleveres nogle testprogrammer, der skal simuleres med de udviklede mikroarkitekturer. Disse testprogrammer er tilgængelige på kataloget /usr/local/del1/dat-ark/k/tests/ Begge implementerede mikroarkitekturers ydeevne skal herudover kvantificeres ved hjælp af benchmarks placeret i kataloget /usr/local/del1/dat-ark/k/benchmarks/ Alle benchmarks skal afvikles på de udviklede mikroarkitekturer og for hver benchmark skal antallet af udførte ordrer 1, antallet af klokcykler, CPI og simuleret udførelsestid rapporteres. Desuden skal samlet simuleret udførelsestid og CPI for alle benchmarks rapporteres. Ydeevnen af enkelt-cyklus arkitekturen kontra den pipelinede arkitektur skal kommenteres kort. For den pipelinede mikroarkitektur skal variationer fra benchmark til benchmark forklares. Det kan være en fordel at foretage en opdeling af CPI bidragene for bedre at kunne relatere dem til specifikke ordrer eller ordresekvenser. Som bilag vedlægges udviklet kildetekst og udskrift af kørsler ved anvendelse af spor-faciliteten i Kreds af de udleverede testprogrammer og benchmarks. 8 Gode råd 8.1 Spørgetime Der afholdes en spørgetime om opgaven tirsdag 28. september 2004 kl. 9.15 i Aud. 3, HCØ. 8.2 Nyhedsgruppe Kurset har sin egen nyhedsgruppe, diku.datark, der er beregnet som elektronisk diskussionsforum for problemstillinger knyttet til kurset. Instruktorer og lærere læser indlæg i denne gruppe regelmæssigt, og bidrager gerne med opklaring af spørgsmål m.v. Brug nyhedsgruppen. 1 Antallet af udførte ordrer for et givet program findes nemmest ved brug af referencesimulatoren mips. 5

8.3 Kreds På kursets hjemmeside vedligeholdes en fortegnelse over opdateringer til Kreds oversætteren, herunder rettelser til kursusbogen. Disse sider opdateres efter behov og bør besøges hyppigt, især i rapportperioderne. Fejl i Kreds eller kursusbogen bedes indberettet som beskrevet på hjemmesiden, mens andre spørgsmål kan bedre stilles i nyhedsgruppen. 8.4 Vink til implementationsrækkefølge Vi anbefaler, at de forskellige dele implementeres i følgende rækkefølge: 1. Lav byggeklodsen for den aritmetisk-logisk enhed (ALU), og afprøv denne omhyggeligt. Vær især omhyggelig med at afprøve, om operationen set-on-less-than virker efter hensigten. 2. Implementer enkelt-cyklus mikroarkitekturen. Tag udgangspunkt i figur 5.29 i COD og udvid denne, så alle de krævede ordrer bliver understøttet. 3. Påbegynd implementationen af den pipelinede mikroarkitektur ved at tage udgangspunkt i enkelt-cyklus arkitekturen. Brug MemIOSys byggeklodsen i stedet for IdealMemIOSys. Tilføj styrelogik nødvendig for at stoppe pipelinen, når holdandwait signalet er højt. 4. Test funktionaliteten ved at tilføje nop ordrer til nogle af de udleverede testprogrammer, således at I undgår hazards. 5. Tilføj forwarding og hazard detektion. Færdiggør styrelogik til håndtering af hop. Det er nu muligt at afvikle testprogrammer og benchmarks på maskinen. 6. Udfør alle benchmarks på begge mikroarkitekturer. Opsaml data og opstil disse i en overskuelig tabel. Lav tegninger af jeres mikroarkitekturer undervejs, og overbevis jer om at de virker. Tegninger siger som bekendt mere end 1000 ord, og de er lettere at forstå end tekstlige beskrivelser. Udskriv gerne jeres design på A3 og vedlæg til rapporten. Lav små testprogrammer (i MIPS assembler) som afprøver alle de hazards I kan finde i jeres pipelinede arkitektur. Hvis I finder fejl i jeres design under 6

afprøvningen, gå tilbage til jeres beskrivelse af arkitekturen og se/beskriv for hinanden hvad I havde overset og ret så beskrivelsen til. Lav et testprogram som viser fejlen og tilføj det til jeres "testsuite". KISS ( Keep It Simple, Stupid ). Først når den simple løsning virker, kan man prøve at være smart (hvis man har tid nok). Litteratur [1] David A. Patterson og John L. Hennessy: Computer Organization and Design, 2nd ed., Morgan Kauffman 1998. ISBN 1-55860-491-X. [2] Signe Reuss og Martin Zachariasen: Kreds, Kursusbog i Maskinarkitektur, DIKU 2004. 7