K1 - En pipelinet mikroarkitektur

Størrelse: px
Starte visningen fra side:

Download "K1 - En pipelinet mikroarkitektur"

Transkript

1 K1 - En pipelinet mikroarkitektur Mikkel Boje, di020168@diku.dk Ulrik Schou Jrgensen, di020545diku.dk Martin Damhus, di020162@diku.dk 25. november 2002 Indhold 1 Sammenfatning Indledning Ambitionsniveau - strategi for en eektiv pipeline Konklusion Lsevejledning Sprogbrug Notation Navngivningskonvention Skemaer Problemorienteret analyse - design af arkitektur Problem Byggeklodser Ydelse - generelle betragtninger Pipelinen, overordnet Hop Hazards Detektion af data hazards To lsninger af data hazards - forwarding og stalls Analyse af stall og forward Ordresttet Standsning af pipelinen Genveje i pipelinen Register 0 i forbindelse med forwarding og stalls Hvad skal forwardes, og hvorfra? J og JAL

2 JR, BEQ, BNE Hopforudsigelse Register STOP Arkitektur - implementation Kontrol PC PCC PCS Equal MEM ALU Pipelineregistre IFID-registret IDEX-registret EXMEM-registret MEMWB-registret FW (Forward) STALL HAW REG Afprvning Cache Datavejsanalyse Benchmarks Brugervejledning 26 A Figurer 28 A.1 Vores pipeline A.2 PCC A.3 PCS A.4 ALU A.5 MEM A.6 PC B Testkrsler af egne testler 39 B.1 Testkrsel af s0a.hex B.2 Testkrsel af s0b.hex B.3 Testkrsel af s1a.hex B.4 Testkrsel af s1b.hex

3 B.5 Testkrsel af s2a.hex B.6 Testkrsel af s2b.hex B.7 Testkrsel af s3a.hex B.8 Testkrsel af s3b.hex B.9 Testkrsel af s3c.hex B.10 Testkrsel af f2a.hex B.11 Testkrsel af f2b.hex B.12 Testkrsel af f2c.hex B.13 Testkrsel af f5a.hex B.14 Testkrsel af f5b.hex C Slackdiagrammer 45 C.1 ALU C.2 FW C.3 MEM D Kildekode 47 D.1 ALU D.2 CTRL D.3 DEC D.4 EXMEM D.5 FW D.6 IDEX D.7 IFID D.8 MEM D.9 MEMWB D.10 PC D.11 PCC D.12 PCS D.13 REG D.14 STALL D.15 K E Skemaer til forward og stall analyse 61 E.1 Skema E.2 Skema E.3 Skema E.4 Skema E.5 Skema F Afprvning af udleverede testler 66 3

4 1 Sammenfatning 1.1 Indledning Denne rapport er en besvarelse af K1-1-opgaven i Datalogi 1E ved Kbenhavns Universitet, stillet efteraret Opgaveformuleringen ndes i [1]. Opgaven gar overordnet ud pa at udvikle en pipelinet mikroarkitektur og implementere denne i sproget Kreds, som beskrives i [4]. Rapportens lsere br have datalogisk indsigt svarende til kurset Dat 1E's indhold. Vi vil i denne rapport referere til vores lsning [5] af G2-opgaven, hvori en enkeltcyklus mikroarkitektur blev udviklet, uden yderligere dokumentation. Genbrugte komponenter ndes i kildekoden D. 1.2 Ambitionsniveau - strategi for en eektiv pipeline Vi vil anvende de i 3.3 anfrte generelle observationer ang. ydelse af en mikroarkitektur under designet af arkitekturen. Vi har ambitioner om at udvikle en korrekt fungerende og hurtig arkitektur. Overblik og overskuelighed vil vi dog altid prioritere over eektivitet. 1.3 Konklusion Det er beklageligvis ikke lykkedes os at fa vores pipeline til at afvikle de udleverede test-ler. Vi har selv opbygget en "test-suite", der afprver samtlige stallog forward-typer, vi har fundet frem til i vores analyse. Disse ler afvikles fejlfrit - pa nr de to ler s2b.hex og f2b.hex (se nedenfor) - og tester samtidig en rkke af de nskede instruktioner. I teorien burde altsa ogsa visse af de mere komplicerede ler virke, idet mange problematiske instruktionssekvenser er gennemprvet. Det er ikke lykkedes os at nde og rette alle fejl indenfor den givne tidsramme. Testlerne ligger i kataloget ~/di020168/k11/ Resultaterne af testkrslerne er dokumenteret i B. Resultaterne af testkrsler af de udleverede programmer kan ses i F. Konsekvensen heraf er, at vi ikke har kunnet afvikle de udleverede benchmarks, se bemrkningerne herom i afsnittet 5.3. Konklusionen er, at de resterende fejl, som ikke er rettet, er enten yderst subtile i deres karakter og ekstremt vanskelige at spore (fx. fejl optrdende i clockcyklus ) eller skyldes logiske fejl i vores analyse af stall og forward. Vi har ikke nsket at ga pa kompromis og stalle undigt pa noget tidspunkt. Den komplekse kontrol af forward og stall, dette har resulteret i, er muligvis logisk fejlbehftet, muligvis implementeret uheldigt. 4

5 Vi har dog lokaliseret en fejl, som vi grundet tidspres ikke har kunnet na at rette. Det er en fejl i arkitekturen: Hvis en sw skal bruge forwardet data i memstadiet til skrivning i lageret, som ikke stammer fra en umiddelbart forudgaende instruktion, er den ndvendige genvej ikke implementeret. En lsning pa problemet ville vre forwarding fra registerbanken til mem-stadiet. Det er denne fejl, der far vores testl s2b.hex til at fejle. Fejlen i f2b.hex kan vi ikke forsta. Vores pipeline kom op pa 641,235 MHz og bruger transistorer. 5

6 2 Lsevejledning 2.1 Sprogbrug For at undga tvetydigheder prciserer vi her vores sprogbrug. "Instruktion"og "ordre"er helt ensbetydende. I arkitekturen kategoriserer vi ledninger i to typer: Kontrollinier, hvis signaler vil benvnes styresignaler eller kontrolsignaler, disse kontrollerer muxe, skriv/ls-tilladelser e.l. o.l. Datalinier, hvis funktion er overfrsel af data mellem komponenter. Disse ledninger vil vi ogsa benvne bitstrmme, signaler eller busser. De este ordrer gr brug af et eller ere registre til deres udfrelse. Sadanne registre vil benvne argumentregistre, registeroperander, operandregistre eller parameterregistre. Visse utvetydige forkortelser vil blive brugt i ng, fx. HAW for holdandwait. Ikke alle ledninger vil blive benvnt ved "fulde navn", se 2.3. Vi vil frit veksle mellem betegnelserne \forwarding" og \genveje", ligesom \stalls" og \standsning af pipelinen" betyder det samme. 2.2 Notation Vha. skrifttyper vil vi gruppere kategorier af beskrevet materiale: Kategori: Skrifttype-eksempel : Byggeklodser i Kreds MemIOSys Instruktioner addi Kode if.. then.. else Kontrolsignaler RegSrc Pipelinetrin ex 2.3 Navngivningskonvention Topnivau-komponenter (ikke-indlejrede) navngives med kortfattede blokbogstavsnavne, fx. CTRL. Indlejrede komponenter har navne begyndende med stort. Navngivne ledninger gar altid mellem to komponenter og flger konventionen N9K 1 2K 2 hvor N er navnet pa ledningen, K 1 er navnet pa den komponent, hvorfra ledningen gar og K 2 er navnet pa den komponent, hvortil ledningen gar. Kontrollinier er navngivet med lutter blokbogstaver, mens datalinier har stort bogstav, nar et nyt ord pabegyndes i navnet. 6

7 Omtale af linierne i rapporten og pa visse gurer vil ofte njes med at benytte N-delen af navnet. 2.4 Skemaer Beklageligvis ma vi i vores analyse henvise til en del skemaer placeret i bilag. Dette skyldes manglende L A TEX-skema-kodningsevner og er ikke et bevidst forsg pa at irritere lseren :-). 7

8 3 Problemorienteret analyse - design af arkitektur 3.1 Problem Vi skal implementere en delmngde (se gur nedenfor) af instruktionssttet mips i en pipelinet mikroarktitektur. Ordretype: Aritmetisk-logisk Immediate aritmetisk-logisk Hop Lagertilgang Stop mips-delmngde: add, sub, slt, and, or addi, slti, andi, ori j, jal, jr, beq, bne lw, sw stop Med henblik pa eektivitet skal forwarding og anden hazardafhjlpning implementeres. 3.2 Byggeklodser Det at pipeline en arkitektur ndrer ikke pa kontrollen af den eksisterende hardware, safremt ingen hardwareomrokeringer mellem pipestages foretages efter indlgning af pipelineregistrene. Vores kontrolenhed fra G2-opgaven [5] kan saledes nsten 1 undret genbruges, da denne netop disponerer over det nskede ordrest, se 4.1. Endvidere kan vores fastalu-komponent benyttes igen. Standardbyggeklodsen MemIOSys er een byggeklods, selvom den reprsenterer to forskellige lagerenheder, instruktionslageret og datalageret. Pa vores illustration af arkitekturen vil lagerenhederne derfor vre indtegnet som separate komponenter. 3.3 Ydelse - generelle betragtninger Lad os i det flgende benytte flgende betegnelser: Betegnelse Betydning # Antal I Instruktion s Sekund F clock-frekvens D Tid over lngste datavej CPI Clockcykler pr. instruktion 1 Pa nr signalet PCSrc (se 4.1) og det faktum, at vi agter at implementere funktioner, der understtter forwarding i kontrolenheden, se

9 Vi etablerer ydelsesmalet Y ved Y = #I=S = F=CP I = 1=(D CP I) Heraf kan vi se, at 2 faktorer er altafgrende for ydelsen af arkitekturen: D og CPI'en. Lad os frst kigge pa, hvorledes vi kan reducere D. D vil vre domineret af tunge komponenter. Den "tungeste"af disse vil stte en vre grnse for ydelsen af hele pipelinen, hermed menes, at hvis en ndvendig komponent K i et lukket mini-testkredslb giver en ydelse pa x MHz, vil vores pipeline aldrig kunne blive hurtigere end x MHz. Af sadanne kritiske komponenter har vi kun 2 kandidater: MeMIOSys og ALU. Vi har, for at understtte senere designbeslutninger (isr med henblik pa pipeline-trin), testet disse to komponenter i lukkede minikredslb 2 : Komponent Ydelse i MHz MemIOSys fastalu Komponenten MemIOSys er testet med standard-cache-parametre, og den anfrte ydelse er et groft gennemsnit af tests med disse standardparametre. Det fremgar af malingerne, at det er komponenten fastalu, der begrnser vores clock-frekvens opadtil. Vi skal altsa undga, at datavejen gennem beregningsenheden gres lngere end strengt ndvendigt. ALU'en har brug for data, som enten udlses af det foregaende pipelineregister, eller som er forwardet. Andet skal der slet ikke forega i det trin af pipelinen. Da nu vi har en vre grnse pa clock-frekvensen, er flgende rsonnement oplagt: 1. Hvert pipelinetrin skal vre hurtigere end det indeholdende ALU'en, hvis clock-frekvensen ikke skal snkes undvendigt 2. CPI'en hves undigt, hvis hver pipetrin ikke udnytter clock-lngden bedst muligt. 3. Det er altsa naturligt at lade hvert pipelinetrin have udfrelsels-tid nr beregningstrinnets.. Lagerkomponenten er tt pa at vre kritisk, men ellers kan vi roligt bygge omfattende pipelinetrin, da der skal meget hardware til at begrnse den pagldende hardwaredelmngde under ALU-grnsen. Pipelinetrin, der er hurtige i forhold til beregningstrinnet, br slas sammen, men vi har fastholdt den femdeling, der prsenteres i [3]. Mere herom om i Vi har ikke testet komponenten ALU, der indeholder forward-logik, men kun selve beregningsenheden der i kildekoden betegnes fastalu. 9

10 Derfor vil vi nu undersge, hvordan CPI'en kan mindskes. CPI er jo clockcykler pr. instruktion, sa jo frre cykler en instruktion benytter sig af, desto hurtigere. Der er forskellige metoder, hvormed CPI'en kan forbedres vsentligt; vi nvner dem her og beskriver detaljerne i separate afsnit: Forwarding (se 3.6) af data afhjlper stalls, der ellers ville gre udfrelsen af den enkelte instruktion lngere. Fa cache misses (se 3.4) snker ogsa CPI'en. Miss-raten afhnger direkte af cache-parametrene til MemIOSys. Tidligt placerede hop (se 3.5) mindsker ogsa CPI'en i hjere eller lavere grad, kommende an pa den konkrete implementation. Vores hovedmal er at implementere en eektiv forward- og stall-politik, saledes at der aldrig stalles undvendigt, da miss raten ikke er en absolut anvendelig eektivitetsmaler (CPI'en snkes ved lav miss rate, men med hj cache-associativitet (som mindsker miss raten) kan den generelle tilgangstid, vre uforholdsmssig hj og muligvis pa sigt udligne den mistede tid pa miss penalties). Lagerhierarkiets struktur er uafhngigt af arkitekturen i nrvrende tilflde og kan derfor optimeres separat, hvis nsket. 3.4 Pipelinen, overordnet Vi har valgt at implementere en pipeline med fem trin. Beslutningen hviler pa forskellige argumenter af forskellig vgt. Nar der lses eller skrives til datalageret, risikeres det, at data ikke bender sig i cachen. Nar det ndvendige data saledes ikke er klar, ma pipelinens reaktion vre at stoppe al aktivitet og vente pa, at cachen har hentet data fra lageret, dette sker ved at stte kontrolsignalet holdandwait. Der ndes alternativer til denne totale fastfrysning. Man kunne implementere en instruktionsk, pa hvilken man kunne arbejde i \ventetiden". Dette forudstter en mere eksibel lagerenhed end MemIOSys, og vi agter ikke at kaste os ud at programmere een selv (i strid med opgaveformuleringen). En anden mulighed er en superskalar arktiektur, hvori adskillige instruktioner indlses hver clockcyklus. MemIOSys tillader indlsning af en mngde instruktionsdata svarende til strrelsen af cache-blokkene, sa i realiteten ville vi kunne indlse mere end en instruktion ad gangen. Dette projekt falder dog uden for opgaveformuleringen, der fordrer en ordreportsstrrelse pa 4 bytes, og forekommer desuden for omfattende i forhold til den givne tidsramme. Dynamisk pipelining, hvor ordrenes rkkeflge omordnes optimerende for at udnytte fx. ventetid ved hopbeslutninger, lagertilgang o.a., er et job for maskinkodegeneratoren, og ikke noget vi vil bekymre os om her. Med implementationen af denne "almindelige"pipeline med en maksimalt en instruktion pr. pipelinetrin, ges naturligt nok laveste CPI til 1. Med hensyn til pipelinens inddeling og funktionaliteten i de enkelte trin, er det tydeligt, at beregningstrinnet ex (i kraft af sin beliggenhed pa den lngste datavej) skal vre et trin for sig selv. Lagerenheden tilgas bade pa lw og sw samt pa instruktionsindlsning. Lageret er ikke specielt hurtigt, og far derfor tildelt 10

11 separate pipelinetrin if (Instruction Fetch) og mem (Memory: ind- og udlsning af register-vrdier). Et mellemstadie id (Instruction Decode) til registeudlsning og dekodning af den indlste instruktion er ndvendigt. Sluttelig opretter vi, i trad med [3]-implementationen, et wb-stadie (Write Back), da dette ellers ville skulle slas sammen med et trin med lagertilgang. wb-stadiet vil vre det hurtigste stadie, idet det kun star for skrivning til registre. Saledes er vi altsa havnet pa en pipelineinddeling magen til den i [3]. Vi vil dog ndre lidt pa placeringen af visse komponenter. 3.5 Hop I principppet kan hopbeslutninger tages i alle pipelinetrin. Jo tidligere i pipelinen, beslutningen skal tages, desto ere stalls vil vi som flge af eventuelle dataafhngigheder (se 3.6) blive ndt til at gennemfre. Stalls hver CPI'en. Sen placering i pipelinen krver en gennemgribende implementation af ushing og helst tillige en hopforudsiger, da forkerte hop er meget dyre og tvinger hele pipelinen til at ushe de forkerte, delvist udfrte ordrer. Flushing hver ogsa CPI'en. Tidlig placering sikrer, at frre ordrer skal elimineres i forbindelse med hopbeslutninger, hvormed CPI-forvrringen er mindre end ved ushing. Endvidere skal ushing implementeres for frre pipelineregistre. Vi vedtager derfor, at hopbeslutninger skal tres sa tidligt som muligt. Det betyder, at de ubetingede hop-ordrer sc j og jal kan udfres allerede i if-stadiet, og CPI'en for disse to ordrer reduceres dermed til minimum. beq, sc bne og JR kan tidligst udfres i id, da registerudlsning sker her. I sa fald skal en passende sammenlingningsenhed til brug pa registeroperanderne i beq og bne introduceres. Da vi nsker at minimere CPI'en mest muligt, skal hoppene ligge tidligt, og vi vil derfor implementere hop-beslutninger for de betingede hop og jr i id. 3.6 Hazards Dataafhngigheder opstar, nar ordrer skal benytte indholdet af registre, hvis mest kurante vrdi endnu ikke er blevet skrevet i registerbanken. Vi vil kun have hazards af to typer: Data- og kontrol-. Strukturelle hazards opstar, nar ens arkitektur ikke kan implementeres vha. det tilgngelige hardware, og vil ikke forekomme, jfr. argumentationen [3] s Dataafhngigheder opstar i forbindelse med den delmngde af mips, vi skal implementere, kun for registerlsende ordrer, med andre ord ordrene jr, bnr, beq, R-type-ordrer, I-type-ordrerne addi, slti, andi ori, samt lw og sw 3. Da vi antager, at skrivning sker i starten af en clock-cyklus og lsning i slutningen af samme, far vi, at der ingen hazards opstar i stadiet WB. 3 Flgende ordrer lser ikke: j,jal,stop 11

12 Kodningen i assemblersprog vil antage, at registre opdateres fuldstndigt mellem hver instruktion. Betragt eksempelvis instruktionssekvensen... add $1, $2, $3 sub $3, $2, $1... Som programmr vil man forvente, at den korrekte sum $2+$3 gemmes i register 1. Herefter trkkes vrdien fra indholdet i register 2 og gemmes i register 3. Men indholdet af register 1 opdateres frst i wb, 2 cykler efter, at vrdien $2+$3 er beregnet. Problemet er, at sub-ordren bruge resultatet af additionen allerede cyklen efter beregningen Detektion af data hazards Dataafhngigheder af ovennvnte type skal opdages i pipelinesystemet, hvis det skal afvikle programmer korrekt. Derfor tilfjes en detektionsenhed til pipelinen. Ved at lade registeradresserne pa argumentregistre til en given ordre ledsage ordren pa dens vej gennem pipelinen, kan afhngigheder opdages allerede o [id]- stadiet. Hver cyklus kontrolleres nemlig ordren i [id]-trinnet: Hvilket register vil instruktionen heri gerne lse? Har en registeroperand her nemlig en opdatering liggende i pipelinen, som endnu ikke er skrevet til registerbanken? Dette forekommer netop i tilflde af lighed mellem registeradresserne To lsninger af data hazards - forwarding og stalls Der ndes to dataafhngighedsafhjlpningsmetoder at tage i brug, forwarding og stall vha. nop's (eller bobler): Stall Man kan forsinke pipelinens eksekvering af en ordre en / ere cykler ved at sende \tomme instruktioner", sakaldte nop 4 's gennem pipelinen. Dermed kan udfrelsen af en instruktion forsinkes, indtil de relevante registre er skrevet. Forwarding De nyeste registervrdier, som enmdnu ikke er skrevet til registerbanken, ligger tilgngelige i pipelinen i de senere piperegistrene. Forwarding er betegnelsen for den teknik til afhjlpning af data hazards, der lser disse endnu ikke skrevne registervrdier i sene pipelineregistre og frer dem op i tidligere pipelinetrin. Stalling hver CPI'en gevaldigt. Vi nsker at mindske CPI'en, sa en bedre lsning er forwarding. For hver afhngihed i instruktionssekvensen, der potentielt 4 Forkortelse for \No operation" 12

13 kan forwardes, ases et eller ere stalls af forwarding. Forwarding mindsker saledes CPI'en for en lang rkke ordresekvenser. Stalling kan undgas mod implementation af ekstra hardware, fx. kan en ALU eller lagertilgang kan indsttes tidligere i pipelinen, men vi tilstrber jo 2 modstridende ting: lav CPI og hj clockfrekvens. Jo mere hardware, jo lavere CPI og jo lavere clock. Jo ere pipetrin, desto hjere clock og desto lavere CPI. Derfor ville en ekstra ALU blot snke clocken undigt Analyse af stall og forward Vores pipeline er udviklet med 5 stadier: if-, id-, ex-, mem- og wb. Det vil i den kommende analyse vise sig nyttigt at tildele disse stadier hver en talvrdi: if = 1, id = 2, ex = 3, mem = 4, wb = 5 Standsning af pipelinen skal ske, nar der ikke kan indlses ny data fra vores hukommelse (pga. cache-misses). Endvidere skal pipelinen standses, nar der opstar en hazard i pipelinen, der ikke kan lses vha. forwarding. Kontrolhazards opstar, nar der skal tres beslutninger vha. data, der endnu ikke er tilgngeligt (i en opdateret udgave). Datahazards opstar, nar der skal foretages beregninger med data, der endnu ikke er tilgngeligt (i en opdateret udgave). Vi vil indledningsvis behandle kontrol- og datahazards samlet. Hvornar er data tilgngeligt? Givet en instruktion, der bliver frdig 5 i memstadiet (stadie 4), og som netop nu bender sig i id-stadiet (2) 6, vil dataen vre tilgngelig efter 4-2 = 2 clock-cykler. Dette antal af clock-cykler vil vi denere som dataafstanden for den instruktion, der opdaterer dataen 7. Ligeledes kan vi denere en dataafstand for den instruktion, der skal bruge dataen 8. Denne afstand vil vre det stadie, instruktionen bender sig i (instruktionens position) (eksempelvis id-stadiet (2)) trukket fra det stadie, hvori instruktionen skal bruge dataen 9 (eksempelvis ex-stadiet (3)). I det aktuelle eksempel vil dataafstanden for den instruktion, der skal bruge den opdaterede data vre 3-2 = 1 clock-cykler. Det er nu muligt at denere en hazardafstand, som er instruktion 1's dataafstand fratrukket instruktion 2's dataafstand: (instruktion 1's b-attribut - instruktion 1's position) - (instruktion 2's a-attribut - instruktion 2's position) 5 Ved frdig vil vi forsta, at instruktionens data er tilgngeligt vha. en genvej. Stadiet hvorfra genvejen kan konstrueres, vil vi kalde instruktionens b-attribut. 6 Som vi vil benvne instruktionens position 7 I det flgende vil denne instruktion blive benvnt instruktion 1. 8 I det flgende benvnt instruktion 2. 9 Som vi i det flgende vil benvne instruktionens a-attribut. 13

14 Denne hazardafstand vil netop angive, om der kan gres brug af en genvej i pipelinen, eller om det er ndvendigt at standse pipelinen. Hvis hazardafstanden er netop 0, kan man blot gre brug af en genvej: den opdaterede data kan forwardes fra instruktion 1 til instruktion 2. Hvis hazardafstanden er 1 eller derover, vil den opdaterede data frst vre tilgngelig en eller ere clock-cykli senere, og en standsning af pipelinen er derfor ndvendig. I ovenstaende eksempel far vi: (4 (mem) - 2 (id)) - (3 (ex) - 2 (id)) = 1 En standsning af pipelinen er derfor ndvendig. En hazardafstand pa mindre end 0 svarer til, at der ingen hazard forendes Ordresttet Hazards opstar, nar en instruktion skal benytte indholdet af et register, der er i gang med at blive opdateret. Da mips-ordrer kan gre brug af 0, 1 eller 2 registre vil det vre ndvendigt at indfre en attribut for 2. instruktion, sa vi kan vide, hvilke registre i instruktionen vi skal sammenligne med instruktion 1's registerdestination. Denne attribut, har vi valgt at kalde c-attributten. Dens vrdier fremgar af skema 1 i E instruktioner med 00 som c-attribut er tydeligvis ikke interessante for hverken standsninger eller genveje i arkitekturen. Det fremgar af 3.6.3, at vi har brug for instruktionernes a- og b-attributter samt deres position i pipelinen. Positionerne er givne, men a- og b-attributterne ma vi tildele instruktionerne. Skema 2 i E.2 10 viser netop attributterne for de relevante instruktioner i vores instruktionsst (bitvrdien for den enkelte attribut er skrevet i parentes.). Vi ser, at der ndes 4 forskellige muligheder for hver attribut, og begge attributter kan derfor implementeres med hver 2 bit. Et skema med kombinationer af a- og b-attributter og positioner for 1. og 2. instruktion er vist i E.3. Hazardafstanden er ligeledes taget med og en navngivning af standsninger og genveje er givet (instruktionens dataafstand er skrevet i parentes). Det skal i skemaet bemrkes, at kombinationer af attributter kan fortstte i pipelinen. Da stalls af pipelinen sker tidligst muligt (i vores arkitektur vil dette sige i id-stadiet), vil en kombination af attributter, der genererer en standsning af pipelinen, og som er en gentagelse af en attributkombination tidligere i pipelinen, ikke vre noget problem. Dette fremgar af navngivningen af standsninger. Ligeledes skal vi vre opmrksomme pa gentagelser af attributkombinationer, nar det glder genveje i pipelinen. Her glder der dog den simple regel, at en genvej kun kan etableres, hvis dataafstanden for bade instruktion 1 og 2 er netop I skemaet skal ex + mem forstas i sammenhng med sw, som bruger sit rs-register i ex-stadiet og rt-register i mem-stadiet. 14

15 3.6.5 Standsning af pipelinen Vi kan opstille et skema for kombinationer af b-attributter for instruktion 1 og a- og c-attributter for instruktion 2 og de to instruktioners position i pipelinen, der vil generere en standsning af pipelinen udfra E.2. Vi skal her huske pa hvilke c-attributter, der er mulige i kombination med hvilke a-attributter. Et optimeret skema over kombinationer er vist i E.4. Selve udfrelsen af standsningen afhnger af, om standsningen skyldes en hazard eller et cache miss. I sidstnvnte tilflde skal alle stadier fryses og instruktionen i if-stadiet indlses pa ny. Hvis der en hazard i pipelinen, der ikke kan lses vha. genveje, fastfryses id-stadiet, en boble indsttes i ex-stadiet, og instruktionen i if-stadiet indlses pa ny Genveje i pipelinen Som for standsninger i pipelinen kan man ogsa opstille et skema med b-attributter for 1. instruktion og a- og c-attributter for 2. instruktion og instruktionernes position i pipelinen. Njagtig som for standsninger kan man ogsa i skemaet for genveje foretage optimeringer. Visse attributkombinationer kan givet instruktionssttet ikke forekomme. Ydermere skal kun genveje, hvor dataafstanden for hver instruktion er 0, medtages (jf ). Et optimeret skema over genveje i pipelinen er givet i E Selve implementationen af forwarding sker ved at oprette genveje fra alle stadier 1. instruktion kan bende sig i til alle stadier 2. instruktion kan bende sig i. Ydermere tilfjes en enhed som udfra ovenstaende skema (der kan kodes som en PLA) afgrer, om forwarding af data skal ske. Det er her ndvendigt, at der sker en prioritering af forwardet data. 1. instruktions positions-vrdi kan direkte bruges som talvrdi for prioriteten af genvej Register 0 i forbindelse med forwarding og stalls Vi noterer os, at for bade forwarding og stalls i pipelinen kan der ikke ske skrivninger til register 0. Der skal derfor ikke ske standsninger eller fremsendelse af data, nar en instruktion skal bruge register 0, eller nar en instruktion prver at opdatere register Hvad skal forwardes, og hvorfra? Forwarding ma implementeres i det tidligste pipelinetrin, forwardet data skal bruges i, eller vre ekstern ift. pipelinetrin. Derfor kan forwarding ikke indsttes 11 Det manglende tjek med dette register skyldes, at 11 for en SW-instruktion (som er den eneste instruktion, der skal have fremsendt data til mem-stadiet) skal tydes som en 10-vrdi i mem-stadiet (og 01 i ex-stadiet). 15

16 i pipelinens ex-trin, som i [3], da vi med hop-ordrer som fx. jr kan have brug for forwardede registervrdier allerede i id. Vi skal altsa forwarde data til tre pipestages: id (her udfres jr, beq, og bne), ex (her sidder ALU'en), og mem (sw skriver til lageret). I mem-stadiet er det kun ordren sw, der benytter data. At tilgngeligt data i dette stadie ikke er opdateret er kun tilfldet, netop hvis den foregaende ordre var en lw. I alle andre tilflde vil det ndvendige data nemlig vre tilgngeligt fra et tidligere pipelinetrin end MEMWB, og dermed vre blevet forwardet tidligere i pipelinen. Der skal forwardes data i de tilflde, hvor registerindhold er blevet ndret og ikke skrevet i registerbanken endnu. Der ndres i registrene i tre tilflde: ved ALU-operationer, ved indlsning fra datalageret og ved skrivning af returadresse i register 31 pa en jal. Derfor skal der forwardes fra tre stadier: ex, mem og wb, eller med andre ord fra pipelineregistrene IDEX, EXMEM og MEMWB J og JAL Ubetingede hop er uden dataafhngigheder bagud og kan derfor umiddelbart udfres. Vi udfrer ubetingede hop allerede i if, sa vi ikke skal ushe. j har absolut ingen komplikationer, mens der pa en jal skal skrives PC+4 i register 31. Dette kan gres i alle pipelinetrin. Men vi skal passe pa, at returadressen ikke overskrives af tidligere instruktioner lngere nede i pipelinen ved fx. ordresekvensen... add $31, $1, $2 jal LABEL... hvor $31 overskrives med $1+$2 4 clockcykler efter, at vi i if opdager, at der skal jal'es. Derfor frer vi returadressen gennem piperegistrene og skriver den frst i wb. Det er med denne lsning ndvendigt at tilfje PC+4-ledningen til forwardenheden, sa register 31's vrdi kan forwardes til efterflgende instruktioner. Vi har valgt denne lsning frem for at introducere kompliceret logik til at holde styr pa rkkeflgen af ordrer, der skriver og benytter register 31. Prisen er den hardware, vi benytter til at trkke de 32 bits gennem adskillige pipeline-stadier JR, BEQ, BNE jr, beq og bne krver registerudlsning, sa hopbeslutninger for disse instruktioner kan tidligst tres i id-stadiet. Men med hopbeslutninger for betingede hop og jr skudt frem til id skal de tre nvnte ordrer saledes allerede i id skulle bruge indholdet af deres argumentregistre. Nyeste vrdi af disse registre er tilgngelige i senere pipelineregistre eller registerbanken. En ordresekvens af typen... 16

17 sub $2, $11, $4 add $1, $2, $3 bne $1, $2, LABEL... skal imidlertid bruge resultatet fra ALU'en i samme cyklus som det bliver beregnet. Principielt ville godt kunne forwarde resultaterne fra ALU'en i samme clockcyklus - men mod en kraftigt lavere clock, da ALU'en ligger pa den kritiske datavej, og det fra ALU'en forwardede resultat skal videre gennem sammenligningslogik efter bregningen. Clocken sttes jo efter lngste datavej, og denne er det malet at afkorte mest muligt. I gennemsnit vil det nok vre hurtigere at stalle 1 gang pa ordresekvenser af ovenstaende type end at forlnge samtlige clockcykli undigt. Alternativt kunne man udskyde hoppet til stadierne ex og mem; altsa lade den betingede hop-ordre fortstte gennem pipelinen til ex-stadiet og sa udfre hoppet (hvis det ellers skal udfres) derfra, idet ndvendig data da ville kunne forwardes (undtagen i de tilflde, hvor det betingede hop forudgas af en load-ordre - i disse tilflde kunne man sa propagere hop-ordren videre til mem). Herved spares 1 eller 2 clockcykler, hvis branchen ikke tages. Der er ingen besparelser at hente, hvis hoppet tages, da der sa skal ushes to ordrer. Dette er dog for omfattende i forhold til vores indledende design til at vi nsker at implementere det: Der fordres en massiv kopiering af hardware, og kontrollen kompliceres temmelig voldsomt (hvormed implementationen ville tage uforholdsmssig lang tid) - denne kunne endvidere nemt risikere at havne pa en kritisk datavej. Man kan forestille sig, at typisk mips-assemblerkode samler klumper af slt (samt slti) og beq/bne-instruktioner, da disse ofte vil sammenligne nogle vrdier med indholdet af register 0. slt benytter ALU'en, hvorfor beq og beq hyppigt vil skulle anvende resultater fra ALU'en. Da bliver regnestykket mht. stall vs. forlngelse af datavej mere kompliceret og afhngigt af instruktionssammenstningen. Men i instruktionssammenstningerne for de to sprog gcc og spice anfrt i [3] s. 189 gur 3.38 ses det, at hhv. 48 og 50 % af ordrerne er aritmetisk(-logisk)e - disse ordrer benytter altsa ALU'en. Ihh. til doktrinen \make the common case fast" ma vi altsa ubetinget afkorte den i kritiske datavej gennem ALU'en mest muligt, hvad vi har valgt at gre (se ogsa 5.2). Derfor stalles der pa ordresekvenser af ovenstaende type. Et tilsvarende problem gr sig gldende for registervrdier, der lses fra lageret i samme cyklus som de nyeste vrdier skal bruges til bne/beq-sammenligninger. Vi kan forwarde det indlste ord inden det skrives til MEMWB - og dermed mindske clock-frekvensen - eller stalle, og dermed ge CPI. Igen har vi valgt, at forwarding kun sker med resultater, der blev beregnet i sidste clockcyklus. En bemrkning, vi br tilfje i forbindelse med branch-ordrerne beq og bne er, at vi maksimalt kan hoppe 2 15 bits vk fra den nuvrende PC-adresse. Vi 17

18 har antaget, at dette problem falder uden for opgavens rammer at lse Hopforudsigelse En 2-bits-hopforudsiger (som omtalt i [3] s. 498.) kan medvirke til at snke at CPI'en ganske kraftigt, da der for hvert rigtigt gt spares 1 clockcyklus. I gennemsnit regnes maskinkode-lkker (som typisk er der, hop-instruktioner benyttes) for at blive gennemlbet 10 gange. Kan en prcision pa over 90 % opnas, vil hopforudsigeren derfor ubetinget vre vrd at implementere. I det indledende design har vi dog ikke overvejet muligheden for at implementere en hopforudsiger, og da dette ikke er stillet som et krav i [1], agter vi ikke at forflge denne mulighed yderligere. 3.7 Register 0 mips foreskriver, at vrdien af register nul altid skal vre 0. Med forward implementeret ville vi principielt kunne risikere at forwarde en ikke-nul vrdi til en instruktion, der bruger dette register, idet vi ikke kan afvise, at nogle instruktioner vil forsge at skrive i register 0. Vi lser problemet i to trin: For at undga at bekymre os om invarianten at register 0 indeholder 0, blokerer vi enhver skrivning af andet end 0 i register 0. Dette gres ved at sende RegDst gennem en 5-bits or-gate, og derefter and'e resultatet med REGWR. Samtidig vil vi i forward implementere, at ordrer, der benytter register 0, blot bruger det, de udlser fra REG komponenten. Den ovenfor viste logik sikrer jo netop, at registret ikke er opdateret med en forkert vrdi. Saledes vil ingen ordre kunne fa forwardet ikke-0-vrdier, en tidligere ordre forsger at skrive i register STOP STOP-signalet markerer afslutningen af simulationen og er at opfatte som en "pseudo-instruktion". Signalet er implementeret med den frdige byggeklods SimSys, der styres af vores kontrolenhed. Simulationen stoppes jeblikkeligt (i den pagldende clockcyklus), nar kontrolenheden opdager, at den lste instruktion er stop-ordren. Udfrsel af eventuelle instruktioner efter stop er sadan set ligegyldige, og vi bekymrer os ikke om disse. 18

19 4 Arkitektur - implementation Som udgangspunkt for vores pipeline vil vi dels benytte mikroarktitekturerne i [3] s. 470, 484, 498 (faktisk een arkitektur, illustreret pa forskellige udviklingstrin), dels vores egen enkeltcyklus-arkitektur fra G2, se [5]. Kontrol, stall-kontrolenheden og forwarding er implementeret i id, da dette er det tidligste stadie i pipelinen, hvortil vi skal kunne forwarde, og det stadie, hvori registre udlses - sa eventuelle stall-beslutninger kan tidligst tres her. Den store forskel fra de i [3] demonstrerede arkitekturer ligger altsa i if og id-stadierne. Arkitekturen er dokumenteret i A.1. I forklaringen af implementationen herunder vil vi referere til guren, men der gres opmrksom pa, at ikke samtlige navne stemmer overens med de, der ndes pa tegningen. Ledninger benvnes kun ved frste del af navnet. Adskillige komponenter er fremvist abstrakt, som byggeklodser. Disse komponenters indmad (evt. endnu et niveau af komponenter) er for de blot en smule kompliceredes tilflde dokumenteret i A pa separate gurer. Vi vil ogsa referere til disse i hj grad. De enkleste komponenter vil blot blive forklaret nedenfor. 4.1 Kontrol De kontrolsignaler i pipelinen, kontrolenheden skal stte, er alle - JRSELECT undtaget - direkte brugbare fra [5]-implementationen af ordresttet. Derfor genbruger vi PLA-implementationen. Denne udvides dog, idet kontrolenheden nu ogsa har til opgave at denere de tre attributtyper for instruktionen og distribuere denne information - til Stall, pipelineregistret IDEX og FW. Vores kontrolenhed kontrollerer de nedenfor opremsede signaler pa den speci- cerede made. Attributterne tildeles vrdier svarende til de i anfrte. ALUOP ALUOP afgr, hvilken operation ALU'en skal udfre. Overholder sandhedstabellen i [5] s. 6, i overensstemmelse med konventionerne vedtaget i opgave 6.2 i [4]. ALUSRC Sttes, hvis ALU'en skal bruge en immediate-operand, altsa pa ordrerne addi, slti, ori, andi, sw, lw BR Sttes pa br, nbr JRSELECT Sttes pa jr. I forbindelse med pipeliningen af arkitekturen er processen med at udvlge nste vrdi til PC blevet vsentligt vanskeligere, se 4.3. Det er ikke lngere muligt for kontrolenheden at afgre, hvilken adresse nste instruktion skal lses fra. Derfor er signaletpcsrc fra implementationen i [5] blevet reduceret til en indikator af, hvorvidt den i kontrolenheden kurante ordre en en jr. Komponenten PCC vil udfra dette og mange andre signaler producere den korrekte instruktionsadresse. Signalet er derfor blevet omdbt til JRSELECT. 19

20 MEMRD Sttes pa lw MEMWR Sttes pa sw NBR Sttes pa nbr REGDST Vlger mellem registeradresser til skrivning (udvlger bits fra instruktionens 32-bit ord). Sttes til 00 pa immediate-instruktionerne addi, slti, andi, ori samt lw, 01 pa jal (hvor returadressen altid skrives i register 31), og 10 pa add, sub, slt, and, or REGSRC Fres gennem pipelineregistrene og vlger i MEMWB-komponenten, hvilken data, der skal skrives i registerbanken. Sttes til 00 pa jal (returadressen skrives), 01 pa samtlige A.L. og I.A.L.-instruktioner (ALUresultatet skrives) og 10 pa lw (det indlste ord skrives). REGWR Sttes pa add, sub, slt, and, or, jal, addi, slti, ori, andi, lw STOP Sttes pa stop XTEND Sttes, nar der skal fortegnsforlnges pa immediate-operander, altsa pa ordrerne beq, bne, addi, slti, lw sw. 4.2 PC PC er vist pa A.6. I PC modtages den opdaterede instruktionsadresse fra PCC; denne lagres i en ipop. PC-adressen gives til MEM, og den nste adresse (PC+4) beregnes og gives til IFID-registret og PCC. De 4 verste af bits af PC+4 gives til PCS (benyttes til beregning af jump-adresser, se 4.4). 4.3 PCC Komponenten PCC er vist i A.2. Komponenten far PC-adresser ind fra PC og PCS, og benytter styresignaler til at vlge den korrekte - og er altsa dermed afgrende for, om instruktioner udfres sekventielt eller om der hoppes, stalles eller ushes. Flushes forekommer, hvis der skal branches pa en beq eller bne- dette afgres nemlig frst i id, og da er en forkert instruktion indlst i IF. Derfor kontrollerer PCC signalet FlushCtrl, som regulerer IFID-registret: Der indsttes 0'er i stedet for den forkerte instruktion i tilflde af branch (en boble indsttes). FlushCtrl kontrolleres af de signaler, der ogsa indikerer, hvorvidt der skal branches pa beq, bne eller jr. Ved at placere muxe i prioriteret rkkeflge internt i PCC vil den korrekte adresse altid "vinde"over de andre. Skal der saledes stalles, vil IFStallAdr blive valgt uafhngigt af eventuel forwarding af adresser, valg af branch-adresse frem for normal PC+4 etc. 20

To mikroarkitekturer til MIPS Karakteropgave på Maskinarkitektur 1B

To mikroarkitekturer til MIPS Karakteropgave på Maskinarkitektur 1B 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

Læs mere

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

Dat1E G2 - En enkelt/dobbelt-cyklus mikroarkitektur. Espen Højsgaard Rune Højsgaard Christian Iversen Dat1E G2 - En enkelt/dobbelt-cyklus mikroarkitektur Espen Højsgaard Rune Højsgaard Christian Iversen 1 Indhold 1 Sammenfatning 3 2 Enkelt-cyklus mikroarkitektur 3 2.1 Tilføjelser til datastien.............................

Læs mere

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

DATALOGI 1E. Skriftlig eksamen torsdag den 3. juni 2004 Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Skriftlig eksamen torsdag den 3. juni 2004 Opgaverne vægtes i forhold til tidsangivelsen herunder, og hver opgaves besvarelse bedømmes

Læs mere

2. juni Solitaire spilles med pinde, der pa gurerne er angivet som sorte pletter. Der

2. juni Solitaire spilles med pinde, der pa gurerne er angivet som sorte pletter. Der SOLITAIRE 2. juni 2003 Mogens Esrom Larsen Indledning. Solitaire spilles med pinde, der pa gurerne er angivet som sorte pletter. Der kan sta en eller ingen pind i et felt, som pa guren er angivet som et

Læs mere

DATALOGI MASKINARKITEKTUR

DATALOGI MASKINARKITEKTUR Københavns Universitet Natrvidenskabelig Embedseksamen DATALOGI ASKINARKITEKTUR Skriftlig eksamen fredag den 29. oktober 24 kl. -2 Frederiksholms kanal 4B Der er fem opgaver i alt og disse giver følgende

Læs mere

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

DATALOGI 1E. Skriftlig eksamen fredag den 7. juni 2002 Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Skriftlig eksamen fredag den 7. juni 2002 Opgaverne vægtes i forhold til tidsangivelsen, og hver opgaves besvarelse bedømmes som en helhed.

Læs mere

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

Dat1E K1-1 - En pipelinet mikroarkitektur. Espen Højsgaard Rune Højsgaard Christian Iversen Dat1E K1-1 - En pipelinet mikroarkitektur Espen Højsgaard Rune Højsgaard Christian Iversen 1 Indhold Indhold 2 1 Sammenfatning 5 1.1 Ambitioner................................... 5 1.2 Resultat.....................................

Læs mere

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

DATALOGI MASKINARKITEKTUR Blok 2 samt Reeksamination i DATALOGI MASKINARKITEKTUR Blok 1 og arkitekturdelen af DATALOGI 1E Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI MASKINARKITEKTUR Blok 2 samt Reeksamination i DATALOGI MASKINARKITEKTUR Blok 1 og arkitekturdelen af DATALOGI 1E Vejledende løsninger til

Læs mere

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

DATALOGI 1E. Skriftlig eksamen mandag den 23. juni 2003 Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Skriftlig eksamen mandag den 23. juni 2003 Opgaverne vægtes i forhold til tidsangivelsen herunder, og hver opgaves besvarelse bedømmes

Læs mere

Processoren: Enkelt-cyklus implementation

Processoren: Enkelt-cyklus implementation Processoren: Enkelt-cyklus implementation Martin Zachariasen, DIKU Litteratur: Patterson & Hennessy, afsnit 5.1 5.3 Historisk tilbageblik MIPS-arkitekturen/delmængde Klokning og byggeklodser Opbygning

Læs mere

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

DATALOGI 1E. Vejledende løsninger til Skriftlig eksamen fredag den 7. juni 2002 Københavns Universitet Naturvidenskabelig Embedseksamen DTLOGI 1E Vejledende løsninger til Skriftlig eksamen fredag den 7. juni 2002 Opgaverne vægtes i forhold til tidsangivelsen, og hver opgaves besvarelse

Læs mere

MIPS, registerallokering og MARS

MIPS, registerallokering og MARS MIPS, registerallokering og MARS Torben Mogensen 2011 Resumé Vi beskriver modulerne Mips.sml og RegAlloc.sml, samt hvordan de bruges sammen med MIPS-emulatoren MARS. 1 MIPS modulet Modulet Mips.sml indeholder

Læs mere

Processoren: Fler-cyklus implementation

Processoren: Fler-cyklus implementation Processoren: Fler-cykls implementation artin Zachariasen, DIKU Litteratr: Patterson & Hennessy, afsnit 5.4 5. Ulemper ved enkelt-cykls maskinen Ændring til fler-cykls maskine Styresignaler Implementering

Læs mere

Kommentarer til indlg om Aspects forsg Gamma 143 malt tilstanden. Produktionen af skrabelodderne kunne sa ske at man lavede lige mange lodder med hver

Kommentarer til indlg om Aspects forsg Gamma 143 malt tilstanden. Produktionen af skrabelodderne kunne sa ske at man lavede lige mange lodder med hver Kommentarer til indlg om Aspects forsg Af I forarsnummeret (141) af Gamma bragte vi et lsersprgsmal om Aspects forsg, der besvaredes af Anders Srensen fra Niels Bohr Institutet. Gamma har efterflgende

Læs mere

Analyse af Saltdata. Henrik Spliid

Analyse af Saltdata. Henrik Spliid Analyse af Saltdata Henrik Spliid December 1999 0 Analyse af restsalt ved udspredning af fugtsalt og saltlage Page 1 of 12 Indledning Nrvrende rapport beskriver kort resultaterne af en statistisk analyse

Læs mere

Skriftlig Eksamen. Datastrukturer og Algoritmer (DM02) Institut for Matematik og Datalogi. Odense Universitet. Torsdag den 6. juni 1996, kl.

Skriftlig Eksamen. Datastrukturer og Algoritmer (DM02) Institut for Matematik og Datalogi. Odense Universitet. Torsdag den 6. juni 1996, kl. Skriftlig Eksamen Datastrktrer og Algoritmer (DM0) Institt for Matematik og Datalogi Odense Universitet Torsdag den 6. jni 1996, kl. 9{13 Alle sdvanlige hjlpemidler (lrebger, notater, etc.) samt brg af

Læs mere

Hvis du har vinduer abne fra en tidligere session, sa luk dem ned { vi vil have

Hvis du har vinduer abne fra en tidligere session, sa luk dem ned { vi vil have Forberedelse: Matlab for absolutte fodgngere Kort introduktion til G-databaren. St dig ved en ledig maskine og gennemfr loginprocessen. Hvis du har vinduer abne fra en tidligere session, sa luk dem ned

Læs mere

Algorithms & Architectures II

Algorithms & Architectures II Algorithms & Architectures II Algorithms & Architectures II Jens Myrup Pedersen Hans Peter Schwefel Kursusholdere Dagens lektion Overordnet mål: At etablere en forståelse for hvordan hardware og hardwarearkitekturer

Læs mere

CPUer og maskinkode DM534. Rolf Fagerberg

CPUer og maskinkode DM534. Rolf Fagerberg CPUer og maskinkode DM534 Rolf Fagerberg CPUers opbygning En CPU er bygget op af elektriske kredsløb (jvf. sidste forelæsning), som kan manipulere bits. En CPU manipulerer flere bits ad gangen, deres antal

Læs mere

Skriftlig eksamen i Databaser, Vinter 2001/2002. Pa opfordring har jeg udarbejdet mulige lsninger pa eksamensopgaverne, men

Skriftlig eksamen i Databaser, Vinter 2001/2002. Pa opfordring har jeg udarbejdet mulige lsninger pa eksamensopgaverne, men Roskilde Universitetscenter Skriftlig eksamen i Databaser, Vinter 2001/2002 Opgaver med lsninger Pa opfordring har jeg udarbejdet mulige lsninger pa eksamensopgaverne, men har ikke haft tid til at polere

Læs mere

dcomnet-nr. 8 Simpel aritmetik på maskinniveau Computere og Netværk (dcomnet)

dcomnet-nr. 8 Simpel aritmetik på maskinniveau Computere og Netværk (dcomnet) dcomnet-nr. 8 Simpel aritmetik på maskinniveau Computere og Netværk (dcomnet) Efterår 2009 1 Simpel aritmetik på maskinniveau I SCO, appendix A, er det beskrevet, hvordan man adderer ikke-negative heltal

Læs mere

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

Oversættere Skriftlig eksamen onsdag d. 25. januar 2006 Københavns Universitet Naturvidenskabelig Embedseksamen Oversættere Skriftlig eksamen onsdag d. 25. januar 2006 Eksamenstiden er to timer. Opgavernes vægt i procent er angivet ved hver opgave. Den skriftlige

Læs mere

AVR MP3 29-05-08 05576 Ingeniørhøjskolen i Århus Michael Kaalund

AVR MP3 29-05-08 05576 Ingeniørhøjskolen i Århus Michael Kaalund AVR MP3 29-05-08 Indholdsfortegnelse 1 Introduktion...2 2 Udviklingsmiljø...2 3 Beskrivelse af systemet...3 3.1 VS1001k...3 3.2 MP3 file formatet...6 4 Konklusion...6 5 Litteratur liste...6 6 Illustrations

Læs mere

DATALOGI 1E. Vejledende løsninger til Skriftlig eksamen mandag den 28. maj 2001. 1 60 min. 2 60 min. 3 60 min. 4 60 min.

DATALOGI 1E. Vejledende løsninger til Skriftlig eksamen mandag den 28. maj 2001. 1 60 min. 2 60 min. 3 60 min. 4 60 min. Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Vejledende løsninger til Skriftlig eksamen mandag den 28. maj 2001 Opgaverne vægtes i forhold til tidsangivelsen, og hver opgaves besvarelse

Læs mere

Indhold. Maskinstruktur... 3. Kapitel 1. Assemblersprog...3. 1.1 Indledning...3 1.2 Hop-instruktioner... 7 1.3 Input og output...

Indhold. Maskinstruktur... 3. Kapitel 1. Assemblersprog...3. 1.1 Indledning...3 1.2 Hop-instruktioner... 7 1.3 Input og output... Indhold Maskinstruktur... 3 Kapitel 1. Assemblersprog...3 1.1 Indledning...3 1.2 Hop-instruktioner... 7 1.3 Input og output... 9 Kapitel 2. Maskinkode... 13 2.1 Den fysiske maskine... 13 2.2 Assemblerens

Læs mere

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for

Læs mere

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

DM13-3. Obligatorisk opgave E.05 Håndoptimering af SPARC assembler-kode - 3. Obligatorisk opgave E.05 Håndoptimering af SPARC assembler-kode Jacob Aae Mikkelsen - 191076 12. december 2005 1 Indhold 1 Opgave beskrivelse 2 2 Muligheder for optimering 2 2.1 efter branch.........................

Læs mere

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

DATALOGI 1E. Skriftlig eksamen fredag d. 16. januar 2004 Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Skriftlig eksamen fredag d. 16. januar 2004 Opgaverne vægtes i forhold til tidsangivelsen herunder, og hver opgaves besvarelse bedømmes

Læs mere

DM13-1. Obligatorisk opgave E.05. Jacob Aae Mikkelsen

DM13-1. Obligatorisk opgave E.05. Jacob Aae Mikkelsen DM13-1. Obligatorisk opgave E.05 Jacob Aae Mikkelsen - 191076 26. september 2005 Indhold Analyse af problemstillingen........................ 2 Spørgsmål 1................................. 3 Spørgsmål

Læs mere

uprocessorens hardware

uprocessorens hardware uprocessorens hardware 8080 Architecture Kernen i en processor er ALUen. Det er den som kan udfører simple regne operationer. De tal den arbejdermed gemmes i en række registre. Når et tal skal hentes eller

Læs mere

Niveauer af abstrakte maskiner

Niveauer af abstrakte maskiner Mikroarkitektur Niveauer af abstrakte maskiner Spørgsmål... Hvordan realiseres IJVM maskinen (lev. 2), eller hvordan ser en IJVM-CPU ud? Opbygning (mikroarkitekturen Mic-1) Anvendelse (mikroprogrammet

Læs mere

Brøk Laboratorium. Varenummer 72 2459

Brøk Laboratorium. Varenummer 72 2459 Brøk Laboratorium Varenummer 72 2459 Leg og Lær om brøker Brøkbrikkerne i holderen giver brugeren mulighed for at sammenligne forskellige brøker. Brøkerne er illustreret af cirkelstykker som sammenlagt

Læs mere

MIPS modulet og registerallokatoren

MIPS modulet og registerallokatoren MIPS modulet og registerallokatoren Værktøjer til oversætterdelen af K1 Dat1E 2001 MIPS modulet Den vigtigste del af modulet MipsData.sml er datatypen mips, som beskriver MIPS ordrer, se figur 1. Alle

Læs mere

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

Maskinsprog. Martin Zachariasen, DIKU. Programmer og ordrer. Ordretyper. Operander og deres placering. Ordreformat. Procedurekald. Andre arkitekturer Maskinsprog Martin Zachariasen, DIKU Litteratur: Patterson & Hennessy, kap. 3 Programmer og ordrer Ordretyper Operander og deres placering Ordreformat Procedurekald Andre arkitekturer 1 Stored-program

Læs mere

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for

Læs mere

Computerarkitektur. - en introduktion til computerarkitektur med LINDA

Computerarkitektur. - en introduktion til computerarkitektur med LINDA Computerarkitektur - en introduktion til computerarkitektur med LINDA faraz@butt.dk Faraz Butt mads@danquah.dk Mads Danquah doktor@dyregod.dk Ulf Holm Nielsen Roskilde Universitetscenter Naturvidenskabelig

Læs mere

Sider og segmenter. dopsys 1

Sider og segmenter. dopsys 1 Sider og segmenter dopsys 1 Lokal vs global sideallokering (1) Med (a) som udgangspunkt giver (b) lokal hhv. (c) global allokering forskellige resultater dopsys 2 Lokal vs global sideallokering (2) Den

Læs mere

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

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

Læs mere

Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Ideen er simpel:

Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Ideen er simpel: Grådige algoritmer Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Ideen er simpel: Opbyg løsningen skridt for skridt ved hele tiden af vælge lige

Læs mere

Tietgenskolen - Nørrehus. Data warehouse. Database for udviklere. Thor Harloff Lynggaard DM08125

Tietgenskolen - Nørrehus. Data warehouse. Database for udviklere. Thor Harloff Lynggaard DM08125 Tietgenskolen - Nørrehus Data warehouse Database for udviklere Thor Harloff Lynggaard DM08125 Juni 2010 Indhold Beskrivelse... 3 Data warehouse... 3 Generelt... 3 Sammenligning... 3 Gode sider ved DW...

Læs mere

Din brugermanual TEXAS INSTRUMENTS TI-84 PLUS http://da.yourpdfguides.com/dref/2175767

Din brugermanual TEXAS INSTRUMENTS TI-84 PLUS http://da.yourpdfguides.com/dref/2175767 Du kan læse anbefalingerne i brugervejledningen, den tekniske guide eller i installationsguiden. Du finder svarene til alle dine spørgsmål i i brugermanualen (information, specifikationer, sikkerhedsråd,

Læs mere

Løsning af simple Ligninger

Løsning af simple Ligninger Løsning af simple Ligninger Frank Nasser 19. april 2011 c 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Bemærk:

Læs mere

Lagervisning. Dina Friis, og Niels Boldt,

Lagervisning. Dina Friis, og Niels Boldt, Lagervisning Dina Friis, dina@diku.dk og Niels Boldt, boldt@diku.dk 6. april 2001 Kapitel 1 Sammenfatning Dette dokument er et eksempel på en delvis besvarelse af G-opgaven stillet på Datalogi 0 2000-2001.

Læs mere

Paradokser og opgaver Gamma 142 To kroner stder til to af de tre til samme side, og udenpa dem stder den sidste krone til begge de to. Nu kunne det se

Paradokser og opgaver Gamma 142 To kroner stder til to af de tre til samme side, og udenpa dem stder den sidste krone til begge de to. Nu kunne det se Paradokser og Opgaver Mogens Esrom Larsen () og Silja Heilmann (HE) Vi modtager meget gerne lserbesvarelser af opgaverne, samt forslag til nye opgaver enten per mail (gamma@nbi.dk) eller per almindelig

Læs mere

3. Computerens opbygning.

3. Computerens opbygning. 3. Computerens opbygning. Computere er konstrueret med henblik på at skulle kunne behandle og opbevare data og det er de som nævnt i noterne om Bits og Bytes vældig gode til. Som overordnet model for computere

Læs mere

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

Der er derfor, for at alle kan sende, kun tilladt, at sende intermitterende. Altså korte pakker. ( Dette skal dog verificeres!!) MHz KIT Rev: /- Det er ikke tilladt, at man bare udsender radiobølger på den frekvens, man ønsker. Forskellige frekvenser er udlagt til forskellige formål. Nogle til politiet, militæret, FM-radio-transmission,

Læs mere

CIVILINGENIREKSAMEN Side 1 af 22 sider. Skriftlig prve, den: 21. december 1995 Kursus nr : 0401. (navn) (underskrift) (bord nr)

CIVILINGENIREKSAMEN Side 1 af 22 sider. Skriftlig prve, den: 21. december 1995 Kursus nr : 0401. (navn) (underskrift) (bord nr) CIVILINGENIREKSAMEN Side 1 af 22 sider Skriftlig prve, den: 21. december 1995 Kursus nr : 0401 Kursus navn: Statistik 1. Tilladte hjlpemidler: Alle sdvanlige Dette st er besvaret af: (navn) (underskrift)

Læs mere

Mandags Chancen. En optimal spilstrategi. Erik Vestergaard

Mandags Chancen. En optimal spilstrategi. Erik Vestergaard Mandags Chancen En optimal spilstrategi Erik Vestergaard Spilleregler denne note skal vi studere en optimal spilstrategi i det spil, som i fjernsynet går under navnet Mandags Chancen. Spillets regler er

Læs mere

Oversættere / Datalogi 1E

Oversættere / Datalogi 1E Københavns Universitet Naturvidenskabelig Embedseksamen Oversættere / Datalogi 1E Skriftlig eksamen onsdag d. 26. januar 2005 Eksamenstiden er to timer. Opgavernes vægt i procent er angivet ved hver opgave.

Læs mere

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for

Læs mere

Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt.

Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt. Merging og hashing Mål Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt. Dette emne er et uddrag af kurset DM507 Algoritmer og datastrukturer (2. semester). Mål

Læs mere

DM13-1. Obligatoriske Opgave - Kredsløbs design

DM13-1. Obligatoriske Opgave - Kredsløbs design DM13-1. Obligatoriske Opgave - Kredsløbs design Jacob Christiansen moffe42@imada.sdu.dk Institut for MAtematik og DAtalogi, Syddansk Universitet, Odense 1. Opgaven Opgaven består i at designe et kredsløb,

Læs mere

Grådige algoritmer. Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Grådige algoritmer. Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Grådige algoritmer Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Læs mere

Skriftlig Eksamen. Datastrukturer og Algoritmer (DM02) Institut for Matematik og Datalogi. Odense Universitet. Onsdag den 18. juni 1997, kl.

Skriftlig Eksamen. Datastrukturer og Algoritmer (DM02) Institut for Matematik og Datalogi. Odense Universitet. Onsdag den 18. juni 1997, kl. Skrftlg Eksamen Datastrukturer og Algortmer (DM02) Insttut for Matematk og Datalog Odense Unverstet Onsdag den 18. jun 1997, kl. 9{13 Alle sdvanlge hjlpemdler (lrebger, notater, etc.) samt brug af lommeregner

Læs mere

Michael Jokil 11-05-2012

Michael Jokil 11-05-2012 HTX, RTG Det skrå kast Informationsteknologi B Michael Jokil 11-05-2012 Indholdsfortegnelse Indledning... 3 Teori... 3 Kravspecifikationer... 4 Design... 4 Funktionalitet... 4 Brugerflade... 4 Implementering...

Læs mere

Noter til C# Programmering Selektion

Noter til C# Programmering Selektion Noter til C# Programmering Selektion Sætninger Alle sætninger i C# slutter med et semikolon. En sætning kontrollerer sekvensen i programafviklingen, evaluerer et udtryk eller gør ingenting Blanktegn Mellemrum,

Læs mere

Listen over reserverede ord er meget lang, men de væsentligste vil jeg beskrive her i denne artikel:

Listen over reserverede ord er meget lang, men de væsentligste vil jeg beskrive her i denne artikel: Denne guide er oprindeligt udgivet på Eksperten.dk SQL og ASP En artikel omkring simpel SQL og hvordan disse opbygges, udformes og udføres, sådan at man kan få et brugbart resultat i ASP. Dette ligefra

Læs mere

Tilgang til data. To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (også kaldet key, nøgle) for dataelementer.

Tilgang til data. To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (også kaldet key, nøgle) for dataelementer. Merging og Hashing Tilgang til data To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (også kaldet key, nøgle) for dataelementer. API for sekventiel tilgang (API =

Læs mere

Programmering. Det rent og skært nødvendige, det elementært nødvendige! Morten Dam Jørgensen

Programmering. Det rent og skært nødvendige, det elementært nødvendige! Morten Dam Jørgensen Programmering Det rent og skært nødvendige, det elementært nødvendige! Morten Dam Jørgensen Oversigt Undervisningen Hvad er programmering Hvordan er et program organiseret? Programmering og fysik Nobelprisen

Læs mere

Oversættere Skriftlig eksamen onsdag d. 24. januar 2007

Oversættere Skriftlig eksamen onsdag d. 24. januar 2007 Københavns Universitet Naturvidenskabelig Embedseksamen Oversættere Skriftlig eksamen onsdag d. 24. januar 2007 Eksamenstiden er to timer. Opgavernes vægt i procent er angivet ved hver opgave. Den skriftlige

Læs mere

Sider og segmenter. dopsys 1

Sider og segmenter. dopsys 1 Sider og segmenter dopsys 1 Lokal vs global sideallokering (1) Med (a) som udgangspunkt giver (b) lokal hhv. (c) global allokering forskellige resultater dopsys 2 Lokal vs global sideallokering (2) Den

Læs mere

Computer Literacy. En stationær bordmodel. En Bærbar Notebook, Labtop, Slæbbar, Blærebar mm.

Computer Literacy. En stationær bordmodel. En Bærbar Notebook, Labtop, Slæbbar, Blærebar mm. Computer Literacy Computer Literacy handler om at forstå hvad computer (hardware) og software kan gøre. Denne præsentation fokuserer kun på hardware februar 2002 Computerliteracy -hardware (15 dias) 1

Læs mere

Processer og tråde. dopsys 1

Processer og tråde. dopsys 1 Processer og tråde dopsys 1 Motivation.. parallelle processer udnytter hardwaren bedre: Batch operativsystemer (50 erne) hhv. små systemer: Multiprogrammering og time-sharing (fra 60 erne og frem): dopsys

Læs mere

Design og funktionel prototype

Design og funktionel prototype Design og funktionel prototype 2.1) Minus scenarie Der bliver sendt nye billeder til rammen og Hans ønsker at se billederne, men billederne rotere for langsomt så Hans går op og bruger touch funktionen

Læs mere

Arbejdsskadeforsikring

Arbejdsskadeforsikring Indhold Forsikringsbetingelser i tilslutning til g{ldende lov om forsikringsaftaler. 100 Generelle betingelser 101 Betaling af pr{mie 102 Forsikringens varighed og opsigelse 103 Indeksregulering 104 #ndring

Læs mere

Svendeprøve Projekt Tyveri alarm

Svendeprøve Projekt Tyveri alarm Svendeprøve Projekt Tyveri alarm Påbegyndt.: 8/2-1999 Afleveret.: 4/3-1999 Projektet er lavet af.: Kasper Kirkeby Brian Andersen Thomas Bojer Nielsen Søren Vang Jørgensen Indholds fortegnelse 1. INDLEDNING...3

Læs mere

Koordinering. dopsys

Koordinering. dopsys Koordinering At indføre flertrådethed (1) når tråde tages i brug opstår typisk konflikter (et velkendt eksempel er errno ) 2 At indføre flertrådethed (2) en del konflikter kan afhjælpes med thread-local

Læs mere

Oversættere. Vejledende løsninger til Skriftlig eksamen onsdag d. 18. april 2007

Oversættere. Vejledende løsninger til Skriftlig eksamen onsdag d. 18. april 2007 Københavns Universitet Naturvidenskabelig Embedseksamen Oversættere Vejledende løsninger til Skriftlig eksamen onsdag d. 18. april 2007 Eksamenstiden er to timer. Opgavernes vægt i procent er angivet ved

Læs mere

Sikre Beregninger. Kryptologi ved Datalogisk Institut, Aarhus Universitet

Sikre Beregninger. Kryptologi ved Datalogisk Institut, Aarhus Universitet Sikre Beregninger Kryptologi ved Datalogisk Institut, Aarhus Universitet 1 Introduktion I denne note skal vi kigge på hvordan man kan regne på data med maksimal sikkerhed, dvs. uden at kigge på de tal

Læs mere

Elektronikken bag medicinsk måleudstyr

Elektronikken bag medicinsk måleudstyr Elektronikken bag medicinsk måleudstyr Måling af svage elektriske signaler Indholdsfortegnelse Indholdsfortegnelse... 1 Introduktion... 1 Grundlæggende kredsløbteknik... 2 Ohms lov... 2 Strøm- og spændingsdeling...

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2016 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 20. april, 2016 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Målet for disse slides er at beskrive nogle algoritmer og datastrukturer relateret til at gemme og hente data effektivt.

Målet for disse slides er at beskrive nogle algoritmer og datastrukturer relateret til at gemme og hente data effektivt. Merging og hashing Mål Målet for disse slides er at beskrive nogle algoritmer og datastrukturer relateret til at gemme og hente data effektivt. Dette emne er et uddrag af kurset DM507 Algoritmer og datastrukturer

Læs mere

\ \ Computerens Anatomi / /

\ \ Computerens Anatomi / / HTX Roskilde - mat-it-prog, 1.4 \ \ Computerens Anatomi / / Introduktion En PC ( personlige computer ) eller computer er bygget op af forskellige komponenter. Vi vil hermed gennemgå størstedelen af computerens

Læs mere

Mark Jeays simple solution to the Rubik s cube oversat og redigeret af Jess Bonde. -

Mark Jeays simple solution to the Rubik s cube oversat og redigeret af Jess Bonde. - Mark Jeays simple solution to the Rubik s cube oversat og redigeret af Jess Bonde. jess@rubiks.dk - http://www.rubiks.dk Trin 0 Introduktion & notation Trin 1 De tre øverste sidestykker Trin 2 Hjørner

Læs mere

Paradokser og opgaver Gamma 143 Barneleg { 1 Lille Peter Dummkopf sidder og leger med sine klodser. Han har 9 klodser, og pa dem star tallene fra 1 ti

Paradokser og opgaver Gamma 143 Barneleg { 1 Lille Peter Dummkopf sidder og leger med sine klodser. Han har 9 klodser, og pa dem star tallene fra 1 ti Paradokser og Opgaver Mogens Esrom Larsen (MEL) Vi modtager meget gerne lserbesvarelser af opgaverne, samt forslag til nye opgaver enten per mail (gamma@nbi.dk) eller per almindelig post (se adresse pa

Læs mere

Logik. Af Peter Harremoës Niels Brock

Logik. Af Peter Harremoës Niels Brock Logik Af Peter Harremoës Niels Brock December 2009 1 Indledning Disse noter om matematisk logik er en videreudbygning af det, som står i bogen MAT A [1]. Vi vil her gå lidt mere systematisk frem og være

Læs mere

Lageradministration. dopsys

Lageradministration. dopsys Lageradministration 1 Lageret i maskinarkitekturen Beregningsenhed, lagre (registre, RAM, disk), ydre enheder 2 Abstraktion over typerne: et hierarki En maskine har flere forskellige lagre Operativsystemet

Læs mere

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

Sproget Six. Til brug i rapportopgaven på kurset Oversættere. Vinter 2006. Abstract Sproget Six Til brug i rapportopgaven på kurset Oversættere Vinter 2006 Abstract Six er baseret på det sprog, der vises i figur 6.2 og 6.4 i Basics of Compiler Design. Den herværende tekst beskriver basissproget

Læs mere

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

DATALOGI 1E. Vejledende løsninger til Skriftlig eksamen mandag den 23. juni 2003 Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Vejledende løsninger til Skriftlig eksamen mandag den 23. juni 2003 Opgaverne vægtes i forhold til tidsangivelsen herunder, og hver opgaves

Læs mere

Start af nyt schematic projekt i Quartus II

Start af nyt schematic projekt i Quartus II Start af nyt schematic projekt i Quartus II Det følgende er ikke fremstillet som en brugsanvisning der gennemgår alle de muligheder der er omkring oprettelse af et Schematic projekt i Quartus II men kun

Læs mere

dcomnet-nr. 6 Talrepræsentation Computere og Netværk (dcomnet)

dcomnet-nr. 6 Talrepræsentation Computere og Netværk (dcomnet) dcomnet-nr. 6 Talrepræsentation Computere og Netværk (dcomnet) Efterår 2009 1 Talrepræsentation På maskinkodeniveau (Instruction Set Architecture Level) repræsenteres ordrer og operander ved bitfølger

Læs mere

Exceptions i Delphi. Try except

Exceptions i Delphi. Try except Exceptions i Delphi Exceptions er en teknik til at fange fejl under programafviklingen. Ikke programmeringsfejl, men fejl der opstår i forskellige situationer, f.eks. en fil der mangler en fil der er skrivebeskyttet,

Læs mere

Tilgang til data. To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (key, nøgle) for dataelementer.

Tilgang til data. To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (key, nøgle) for dataelementer. Merging og Hashing Tilgang til data To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (key, nøgle) for dataelementer. API for sekventiel tilgang (API = Application

Læs mere

FRA BERNOULLIS FORUNDERLIGE POLYNOMIER OG TAL VIA EULER{MACLAURINS SUMFORMEL TIL ROMBERGS INTEGRALAPPROXIMATION. Mogens Esrom Larsen. 1.

FRA BERNOULLIS FORUNDERLIGE POLYNOMIER OG TAL VIA EULER{MACLAURINS SUMFORMEL TIL ROMBERGS INTEGRALAPPROXIMATION. Mogens Esrom Larsen. 1. FRA BERNOULLIS FORUNDERLIGE POLYNOMIER OG TAL VIA EULER{MACLAURINS SUMFORMEL TIL ROMBERGS INTEGRALAPPROIMATION Mogens Esro Larsen. arts 5 Bernoullis polynoier og tal. Bernoullipolynoierne og Bernoullitallene

Læs mere

Programmering C Eksamensprojekt. Lavet af Suayb Köse & Nikolaj Egholk Jakobsen

Programmering C Eksamensprojekt. Lavet af Suayb Köse & Nikolaj Egholk Jakobsen Programmering C Eksamensprojekt Lavet af Suayb Köse & Nikolaj Egholk Jakobsen Indledning Analyse Læring er en svær størrelse. Der er hele tiden fokus fra politikerne på, hvordan de danske skoleelever kan

Læs mere

Mikroprogrammering. Niels Olof Bouvin Institut for Datalogi Aarhus Universitet

Mikroprogrammering. Niels Olof Bouvin Institut for Datalogi Aarhus Universitet Mikroprogrammering Niels Olof Bouvin Institut for Datalogi Aarhus Universitet Oversigt Mikroprogrammering: IJVM implementeret på Mic-1 Forbedringer af Mic-1 Metode til udvikling af symbolske maskinsprogsprogrammer

Læs mere

Kapitel 4 Løkker i C#

Kapitel 4 Løkker i C# Kapitel 4 Løkker i C# Løkker en vigtig del af alle programmeringssprog, og C# er ikke andeles. En løkke er en måde at udføre en del af koden gentagne gange. Ideen er at du fortsætter med at udføre en opgave

Læs mere

Kommunal Rottebekæmpelse tal og tendenser

Kommunal Rottebekæmpelse tal og tendenser Kommunal Rottebekæmpelse tal og tendenser Siden 1938 har de danske kommuner haft pligt til årligt at indberette oplysninger om den kommunale rottebekæmpelse til de centrale myndigheder. Myndighederne anvender

Læs mere

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

Fig. 1 Billede af de 60 terninger på mit skrivebord Simulation af χ 2 - fordeling John Andersen Introduktion En dag kastede jeg 60 terninger Fig. 1 Billede af de 60 terninger på mit skrivebord For at danne mig et billede af hyppighederne flyttede jeg rundt

Læs mere

Skriftlig Eksamen. Datastrukturer og Algoritmer (DM02) Institut for Matematik og Datalogi. Odense Universitet. Fredag den 5. januar 1996, kl.

Skriftlig Eksamen. Datastrukturer og Algoritmer (DM02) Institut for Matematik og Datalogi. Odense Universitet. Fredag den 5. januar 1996, kl. Skriflig Eksamen aasrukurer og Algorimer (M0) Insiu for Maemaik og aalogi Odense Universie Fredag den 5. januar 1996, kl. 9{1 Alle sdvanlige hjlpemidler (lrebger, noaer, ec.) sam brug af lommeregner er

Læs mere

LEKTION 4 MODSPILSREGLER

LEKTION 4 MODSPILSREGLER LEKTION 4 MODSPILSREGLER Udover at have visse fastsatte regler med hensyn til udspil, må man også se på andre forhold, når man skal præstere et fornuftigt modspil. Netop modspillet bliver af de fleste

Læs mere

Lyskryds. Thomas Olsson Søren Guldbrand Pedersen. Og der blev lys!

Lyskryds. Thomas Olsson Søren Guldbrand Pedersen. Og der blev lys! Og der blev lys! OPGAVEFORMULERING:... 2 DESIGN AF SEKVENS:... 3 PROGRAMMERING AF PEEL KREDS... 6 UDREGNING AF RC-LED CLOCK-GENERAOR:... 9 LYSDIODER:... 12 KOMPONENLISE:... 13 DIAGRAM:... 14 KONKLUSION:...

Læs mere

Algebra. Denition. Signatur: et antal sorter eller typer: (simple eller strukturerede). et antal konstantsymboler med type, og

Algebra. Denition. Signatur: et antal sorter eller typer: (simple eller strukturerede). et antal konstantsymboler med type, og Algebra Denition. Signatur: et antal sorter eller typer: (simple eller strukturerede). et antal konstantsymboler med type, og en antal operatorsymboler med rang 1 ::: n! hvor 'erne er typer. Eksempel:

Læs mere

Eksempler på elevbesvarelser af gådedelen:

Eksempler på elevbesvarelser af gådedelen: Eksempler på elevbesvarelser af gådedelen: Elevbesvarelser svinger ikke overraskende i kvalitet - fra meget ufuldstændige besvarelser, hvor de fx glemmer at forklare hvad gåden går ud på, eller glemmer

Læs mere

Oversættere Skriftlig eksamen onsdag d. 19. april 2006

Oversættere Skriftlig eksamen onsdag d. 19. april 2006 Københavns Universitet Naturvidenskabelig Embedseksamen Oversættere Skriftlig eksamen onsdag d. 19. april 2006 Eksamenstiden er to timer. Opgavernes vægt i procent er angivet ved hver opgave. Den skriftlige

Læs mere

LEKTION 8 SPILFØRING I TRUMFKONTRAKTER

LEKTION 8 SPILFØRING I TRUMFKONTRAKTER LEKTIO 8 PILFRIG I TRUMFKOTRAKTER om omtalt i forrige lektion er der flere fordele ved at spille med en farve som trumf. Tilstedeværelsen af trumfer både på vores og modstandernes hænder gør imidlertid,

Læs mere

Anvendt Statistik Lektion 6. Kontingenstabeller χ 2 -test [ki-i-anden-test]

Anvendt Statistik Lektion 6. Kontingenstabeller χ 2 -test [ki-i-anden-test] Anvendt Statistik Lektion 6 Kontingenstabeller χ 2 -test [ki-i-anden-test] 1 Kontingenstabel Formål: Illustrere/finde sammenhænge mellem to kategoriske variable Opbygning: En celle for hver kombination

Læs mere

Kursusgang 11. Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing

Kursusgang 11. Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing Kursusgang 11 Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing Design af brugerflader 11.1 Samme sted Forskellige steder Sidste kursusgang Samtidigt

Læs mere