CE_O8. Cacheminne. Hemlaboration 2.

Storlek: px
Starta visningen från sidan:

Download "CE_O8. Cacheminne. Hemlaboration 2."

Transkript

1 IS1200 Lösningsförslag till övning CE_O8, 2015 CE_O8. Cacheminne. Hemlaboration Medeltidshistoria Diskutera förloppet då CPU:n gör en läsreferens i huvudminnet dvs information kopieras från huvudminne via bus till CPU. Förklara hur olika blockstorlek inverkar och varför det kan löna sig att hämta flera ord i följd jämfört med enstaka ord. Lösningsförslag: Ett rimligt antagande när det gäller datorer med cache-minne är att de är försedda med ett externt minne, huvudminne (Main Memory-MM, RAM-Minne säger man lite slarvigt i PC-världen) som oftast är av typen DRAM (Dynamiskt RAM) och som är anslutet till CPU-kretsen via en bus, och eventuellt via en eller flera kretsar som brukar kallas chipset. Chipset kretsarna innehåller kontroll-logik för den typ av minneskretar som används i huvudminnet. Om man byter minnnestyp i huvudminnet måste man troligen även byta chipset (dvs man måste byta moderkort). Om man vill arbeta med typiska siffervärden på hur snabb CPU:n och bussen är får man leta efter MHz-angivelser. CPU:n är "snabb" och har idag (2003) ofta en klockfrekvens runt 2 GHz, medan bussen har en klockfrekvens runt 200 MHz. Ibland förekommer siffran 800. En intressant kvalitetsegenskap förutom busfrekvensen är bithastigheten eller "busbandbredd". Bussbandbredd beror av antal bitar på databusen samt hur många överföringar som maximalt kan utföras per busklockcykel. Siffran 800 torde kunna hänföras till en buscykelfart av 200 MHz med 4 överföringar om 64 bitar per buscykel. Bussbandbredden blir då (200 * 4 * 64 )/8 = (800 * 64)/8 MBytes per sekund vilket uträknat blir MByte per sekund. Om det ska överföras information från Main Memory, MM, till CPU krävs tre moment. 1. Överför adressinformation (32 eller 64 bitars adressbuss) från CPU via bus till MM 2. Leta fram datainformation i minnet (64 bitar) 3. Överför datainformation från MM till CPU (64 bitars databus) Räknat i antal busscykler tar detta minst 3 cykler, under förutsättning att man i MM kan få fram informationen inom en busscykel. Det är en rimlig strävan att minneskretsar har en hastighet som är i bra balans med bussfrekvensen dvs att man i bästa fall kan få fram information inom en busscykel. I verkligheten är minneskretsarna ofta komplicerat uppbyggda internt vilket medför att det tar mer än en busscykel att få fram information. Speciellt om man ska leta fram information i minneskretsen på en plats som inte finns i närheten" av den man alldeles nyss refererade. DRAM är ofta organiserat i rader och kolumner och så fort man byter rad, tillkommer extra tid (cykler) för detta. Alltså, i bästa fall tar det en buss (minnes-) klockcykel att få fram information. Om man ska läsa i MM från flera platser som ligger "i samma rad" kan man göra adminstrativa vinster så att den första referensen tar en (eller flera) busscykler och Lösningsförslag Sida 1 av

2 närmast efterföljande tar (exakt) en enda buscykel. Det bygger på att man antingen kan använda bussen med pipe-line teknik och överlappa de tre stegen ovan tidsmässigt, eller att minneskretsen internt sparar och uppdaterar aktuell adress så att informationen hämtas från platser som ligger "i rad" i kretsen. Detta innebär att om CPU:n efterfrågar 4 enheter i rad från MM så kommer medelhämtetiden per enhet att bli lägre än om CPU:n bara hämtar en enhet i taget. Man för ett referensmönster där siffrorna anger bästa tänkbara utfall räknat i busscykler per hämtad enhet. Medelhämtetiden blir ( )/4 busscykler dvs 1,5 busscykel per enhet om man hämtar 4 i rad jämfört med 3 busscykler per enhet om man hämtar en enhet i taget. Sammanfattning: Om man ökar blockstorleken vid (läs-) referenser från CPU:n till MM kan man minska medeltid per läsreferens. Denna tidsvinst kan man ta vara på om man lyckas hämta in information som kommer att användas. Om inhämtad information inte används får man i stället en större medelhämtetid per enhet. Om man exempelvis hämtar in 4 enheter men bara använder 1 enhet blir ju medelhämtetiden för denna enda enhet 6 busscykler i stället för 3 om man bara hade hämtat in just den. Slutsats: För att det ska vara någon vits/vinst med att hämta in flera enheter vid varje referens till MM krävs 2 saker: 1. Medelhämtetiden per enhet ska minska vid ökad blockstorlek 2. Sannolikheten att alla inhämtade enheter används, ska vara (tillräckligt) stor. Parentes: Minneskretsar som kan leverera 4 enheter per klockcykel kan använda en teknik som kallas interleaving, vilket kortfattat innebär att man delar in minnet i 4 delar som arbetar parallellt men förskjutet 1/4 klockperiod i tiden. Var och en av de fyra enheterna levererar en enhet per (sin) klockperiod. Accessmönster torde kunna bli 3-1/4-1/4-1/4. Detta ger inte så stor utdelning jämfört med vid små block men vid tillämpningar med "streaming data", dvs jättestora block, kan man få hög bussbandbredd. Lösningsförslag Sida 2 av

3 8.2. Referenslokalitet: tidslokalitet och rumslokalitet Vad menas med att ett program vid sin exekvering har lokalitetsegenskaper: tidslokalitet och rumslokalitet? Försök ge förslag på ett program som vid sin exekvering har dålig lokalitet (noll?) och diskutera vilken inverkan det har vid användning av cache. Lokalitetsegenskaper finns både i program och data. Diskutera hur man kan skriva sina program för att öka lokaliteten. Lösningsförslag: Vi tar en lokalitetsegenskap i taget. Tidslokalitet innebär: Om man har refererat minnet på en viss adress är det mer sannolikt att just denna minnesadress refereras snart igen (återanvndning) jämfört med sannolikheten att referera andra godtyckliga adresser. Typexempel på "återanvändning" av information i minnet finns i programloopar samt i datareferenser där man gör Read-Modify-Write och det gör man typiskt av loopräknare och indexvariabler. Även vid beräkningar görs ofta Read-Modify-Write av en variabel som lagras i minnet. Ett exempel på ett program som saknar tidslokalitet är alltså ett program utan loopar (med enbart "rak kod") som aldrig gör dubbla referenser till samma data-area. (Ytterligare tänkvärda frågor: Ett vanligt typiskt program innehåller tidslokalitet. Kan man ange ett siffervärde på hur "stor" tidslokalitet ett program har? Kan man på något sätt be kompilatorer att försöka öka tidslokaliteten? Kan kompilatorn öka antalet loopar?) Rumslokalitet innebär: Om man har refererat minnet på en viss adress är det mer sannolikt att nära liggande minnesceller refereras jämfört med sannolikheten att referera andra godtyckliga adresser. Typexempel på rumslokalitet finns i raka programdelar där en följd av instruktioner finns lagrade efter varandra i minnet, och bearbetning av data i matriser som normalt lagras i rad i minnet och som refereras i rad i minnet. Ett exempel på program som saknar rumslokalitet är ett program med extremt många hoppinstruktioner (kan man ha hopp i varje instruktion?) och bearbetning av data som ligger helt slumpvis i minnet (allt annat än organiserat systematiskt i matriser eller vektorer). (Ytterligare tänkvärda frågor: Ett vanligt typiskt program innehåller rumslokalitet. Kan man ange ett siffervärde på hur "stor" rumslokalitet ett program har? Kan man på något sätt be kompilatorer att försöka öka rumslokaliteten? Placera mest sannolika programvägen i en rak sekvens. Allokera datastrukturer som är anpassade till referensmönster typ rad/kolumn i matrisarbeten.) Lösningsförslag Sida 3 av

4 8.3. Adressering i Main Memory och Cache Memory Antag att Main Memory, MM, har en viss storlek, t.ex. 3x128 Mbyte (384 Mbyte) Hur många adressbitar krävs för adressera MM dvs att kunna peka ut varje enskild byte i MM. Visa hur adressen ovan delas upp i olika fält för att ange var i ett cacheminne man ska lagra den information som pekas ut i Main Memory. Antag att cacheminnet innehåller 16 Kbyte och man vid varje referens till Main Memory överför ett block om 4 Word om vardera 64 bitar (8 byte)). Visa för olika fall enligt nedan. Visa även hur antal bitar i de olika fälten i adressen ändras om man ändrar storlek respektive blockstorlek i cacheminnet. a) Direkt adressavbildning (1-vägs associativ adressavbildning) b) 2- och 4-vägs mängdassociativ adressavbildning c) Fullt associativ adressavbildning Lösningsförslag: En bra minnesregel är att man med 10 binära bitar kan peka ut 1024 platser. Man säger då t.ex. att man med 10 bitar kan adressera varje byte i ett minne om 1 KByte. Med 20 bitar kan man adressera 1024x1024 platser dvs varje byte i ett minne med 1 MByte (1K gånger 1K blir 1M). Nu har vi 3 x 128 MByte. 128 MByte kan vi adressera med 20 bitar + ytterligare 7 bitar för att välja 1 av 128 (MByte) och ska vi sen klara att välja en av de tre 128 MByte delarna krävs ytterligare 2 bitar som troligen har värden 00, 01 och 10 för att välja mellan tre stycken 128 MByte områden. Sammanglatt behövs alltså 29 bitar (klarar egentligen 4 x 128MByte = 512 MByte). Om man i ett cacheminne som rymmer 16 KByte ska kunna peka ut varje enskild byte krävs en adress med 14 bitar. Den adress som pekar ut en byte i MM används för att peka ut en byte i cachen genom att de minst signifikanta bitarna används för att peka ut en byte i cachen. Alltså används de 14 minst signifikanta bitarna för att adressera cachen. Vid varje överföring mellan MM och cache överförs ett block om 32 byte. Denna enhet kallas för block size eller line size. I adressen används tillräckligt många minst signifikanta bitar för att kunna peka ut en enskild byte inom ett block. Eftersom varje block innehåller 32 byte behövs i vårt exempel 5 bitar för detta ty 2 upphöjt till 5 är 32. Vi får då 9 bitar kvar för att använda som INDEX-bitar till block eller rad. a) För ett cacheminne som använder direkt adressavbildning gäller att varje byte/block i MM bara kan lagras på en enda tillåten plats i cachen, och den platsen anges av värdet på bitarna i INDEX-fältet i adressen. Om man ska kopiera information från en viss plats i MM till cache-minnet kan data placeras på en enda plats i cachen. På denna plats i cachen kan man placera data från många olika platser i MM. På något sätt måste man kunna ta reda på vilka data som just nu finns i cachen. Genom att lagra en adresslapp, TAG, i varje block/rad i cachen kan man bokföra varifrån i MM man hämtat data till utpekad rad. TAG- Lösningsförslag Sida 4 av

5 informationen som lagras i cachen tillsammans med ett block utgörs av de mest signifikanta bitarna i adressen till det block som finns i cachen. I detta exempel blir det 15 bitar i TAG-fältet. Vid läsning av ett block från MM görs en undersökning om detta block finns i cachen genom att jämföra adressens TAG (lagom många mest signifikanta bitar) med det TAG-värde som finns lagrat i cachen på den enda plats där aktuellt block kan vara lagrat, dvs den rad som pekas ut av INDEX-bitarna. Om dess TAG-bitar är lika så finns data i cachen och man har en cache-hit. Av adressens 29 bitar har vi nu fått ett BYTE-i-BLOCK om 5 bitar, ett INDEX-fält om 9 bitar och ett TAG-fält om 15 bitar (de bitar som blir över). Från början är cachen tom, och för att administrera detta finns för varje rad i cachen en extra VALID-bit som med värde 0 markerar "tomt" och med värde 1 markererar "valid". För att tolka en cacheminnesreferens som en HIT krävs att utpekad valid-bit är ettställd dvs anger "valid". b) Vid fullt associativ adressavbildning gäller att ett block av information som ska kopieras från MM till cache får placeras på vilken rad som helst i cachen. Detta försvårar administrationen. Dels måste man när man ska skriva till cachen leta reda på en ledig plats, och dels måste man när man vill leta efter information i cachen jämöra aktuellt TAG-värde i adressen med samtliga befintliga TAG-värden i cachen (för de rader vars VALID-bit är ettställd). Dessutom tillkommer uppgiften att, när cachen är fullskriven, välja vilken plats som man ska skriva till då ny information ska skrivas till cachen. Detta senare kallas utbytes-algoritm. Adressen, om 29 bitar, delas upp i BYTE-i-BLOCK som kräver de 5 minst signifikanta bitarna precis som i a) och övriga 24 bitar blir TAG-fält. Ett fullt associativt cacheminne kräver alltså större administrativ plats för att lagra större TAG-fält. Det finns inga bitar alls i INDEX-fältet eftersom man inte behöver välja mellan olika tänkbara platser i cachen utan cachen består av en enda rad. c) 2-vägs mängdassociativ adressavbildning, 2-way set associative mapping, 2-vägsassociativt cacheminne. I detta fall kan varje utpekat block i MM lagras på två olika platser i cachen. Man kan illustrera detta på olika sätt. Antingen delar man in hela cachen så att man grupperar rader 2 och 2 (liknande fig 6.11 i kursboken) eller också ritar man cachen "dubbelt så bred" så att varje rad innehåller två block (som man gör i cache-simulatorn till hemlaboration 2). I denna lösning väljer vi att placera 2 block per rad för ett 2-vägs associativt minne. Effekten blir att vi får hälften så många rader som i uppgift a) men 2 block per rad i stället för ett block som vi hade i a). Adressens 29 bitar delas nu upp i följande fält. För att ange BYTE-i-BLOCK behövs fortfarande 5 minst signifikanta bitar. För att ange vilken enda rad (exakt vilka 2 block) i cachen som informationen kan vara lagrad krävs endast 8 bitar eftersom det bara finns 256 rader (med vardera 2 block dvs bytes vilket blir 16 KBytes). Detta medför att resten av bitarna, dvs = 16 bitar ska lagras i TAG-fältet. Då vi ändrar minnet från direktavbildande (associativitet 1) till 2-vägs associativitet Lösningsförslag Sida 5 av

6 (dubblar associativiteten) kommer antalet bitar i TAG att öka med 1 och antalet bitar i INDEX att minska med 1, medan antal bitar i BYTE-i-BLOCK är oförändrat. Om vi ökar associativiteten från 2 till 4 och illustrerar det genom att öka bredden till 4 block och minska antal rader, höjden, till häften, kommer ytterligare en bit att "flyttas" från INDEX till TAG dvs gränsen mellan TAG och INDEX förskjuts ett steg åt höger. Varje gång vi dubblerar associativiteten "flyttas" en bit från INDEX-fältet till TAGfältet. Vi måste öka storleken på kiselytan i cachen för att lagra administrativ information. Sammanfattning: Totala antalet bitar i adressen till ett byteadresserat MM bestäms av storleken på MM. Totala antalet bitar i adressen till en byteadresserad cache bestäms av storleken på cachen. Antal bitar i BYTE-i-BLOCK bestäms av blockstorleken. Antal bitar i INDEX-fältet beror av antal rader (eller set) i cachen Antal bitar i TAG-fältet blir "resten" av bitarna 8.4. Analys av träff och miss i cache-minne Se lösningsförslag till tentamen , uppgift 4. Lösningsförslag Sida 6 av

7 8.5. Analys av träff och miss i cache-minne Cacheminnet är tomt när rad 1 körs. rad 1 movia r8, 0x80a700 ; lägg adress i r8 rad 2 ldw r12,0(r8) ; läs 4 bytes från adress 0x80a700 rad 3 ldw r13,4(r8) ; läs 4 bytes från adress 0x80a704 rad 4 stw r14,20(r8) ; skriv 4 bytes till adress 0x80a714 rad 5 ldw r15,12(r8) ; läs 4 bytes från adress 0x80a70c rad 6 ldw r16,256(r8) ; läs 4 bytes från adress 0x80a800 rad 7 ldw r17,20(r8) ; läs 4 bytes från adress 0x80a714 a) Är tidslokaliteten stor eller liten för instruktionshämtningarna när en dator kör assemblerkoden ovan? Svar: varje instruktion hämtas (och utförs) bara en gång, det finns ingen loop. Därför finns ingen tidslokalitet alls för instruktionshämtningarna. Är rumslokaliteten stor eller liten för instruktionshämtningarna? Svar: när en instruktion har hämtats så hämtas därefter nästa instruktion i adressordning. Det betyder att rumslokaliteten är bra när en adress har lästs så kommer ju snart en mycket näraliggande att läsas. b) Är tidslokaliteten (re-use) stor eller liten för läsning/skrivning av data när en dator kör assemblerkoden här ovanför? Svar: alla läsningar och skrivningar använder olika offsets från r8, så inget dataord läses eller skrivs mer än en gång. Det finns alltså ingen tidslokalitet (no re-use). Är rumslokaliteten (locality) stor eller liten för läsning/skrivning av data? Svar: läsningarna (och skrivningen) gäller huvudsakligen ett litet minnesområde nära adress 0x80a700, så rumslokaliteten är god. c) För varje ldw och stw i assemblerkoden här ovanför, ange om den ger träff eller miss i datacacheminnet (D-cache). Storlek (cache size): 256 byte (64 ord). Blockstorlek (line size): 8 byte (2 ord). Associativitet (blocks in set): 1-vägs (direktmappat). Datacacheminnet ser ut som på bilden till höger. Läsningar/skrivningar är markerade i cacheminnet. rad 1 movia r8, 0x80a700 ; ingen load eller store, påverkar alltså inte D-cache rad 2 ldw r12,0(r8) ; miss, cache-minnet är ju tomt rad 3 ldw r13,4(r8) ; träff, läs 4 bytes i samma block som rad 2 rad 4 stw r14,20(r8) ; miss, skriv till tidigare oanvänt block rad 5 ldw r15,12(r8) ; miss, läsning från ny plats i primärminnet rad 6 ldw r16,256(r8) ; miss, läsning från ny plats i primärminnet rad 7 ldw r17,20(r8) ; träff, läs samma som rad 4 rad rad 3 rad 5 rad Lösningsförslag Sida 7 av

8 d) Ändring av blockstorlek (block size), jämfört med deluppgift c. För varje ldw och stw i assemblerkoden här ovanför, ange om den ger träff eller miss i datacacheminnet (D-cache). Storlek (cache size): 256 byte (64 ord). Blockstorlek (line size): 64 byte (16 ord). Associativitet (blocks in set): 1-vägs (direktmappat). Datacacheminnet ser ut som på bilden här nedanför. Läsningar/skrivningar är markerade i cacheminnet. rad 2 rad 3 rad 5 rad 4 rad 1 movia r8, 0x80a700 ; ingen load eller store, påverkar alltså inte D-cache rad 2 ldw r12,0(r8) ; miss, cache-minnet är ju tomt rad 3 ldw r13,4(r8) ; träff, läs 4 bytes i samma block som rad 2 rad 4 stw r14,20(r8) ; träff, läs 4 bytes i samma block som rad 2 rad 5 ldw r15,12(r8) ; träff, läs 4 bytes i samma block som rad 2 rad 6 ldw r16,256(r8) ; miss, läsning från ny plats i primärminnet ; läsningen gör att översta cacheminnesraden skrivs över rad 7 ldw r17,20(r8) ; miss, översta raden skrevs ju över med nya data nyss e) Ändring av associativitet (blocks in set), jämfört med deluppgift c. För varje ldw och stw i assemblerkoden här ovanför, ange om den ger träff eller miss i datacacheminnet (D-cache). Storlek (cache size): 256 byte (32 ord). Blockstorlek (line size): 8 byte (2 ord). Associativitet (blocks in set): 4-vägs associativt. Utbytespolicy: LRU, Least Recently Used. Datacacheminnet ser ut som på bilden här nedanför. Läsningar/skrivningar är markerade i cacheminnet. rad 2 rad 3 rad 5 rad 4 rad 6 rad 1 movia r8, 0x80a700 ; ingen load eller store, påverkar alltså inte D-cache rad 2 ldw r12,0(r8) ; miss, cache-minnet är ju tomt rad 3 ldw r13,4(r8) ; träff, läs 4 bytes i samma block som rad 2 rad 4 stw r14,20(r8) ; miss, skriv till tidigare oanvänt block rad 5 ldw r15,12(r8) ; miss, läsning från ny plats i primärminnet rad 6 ldw r16,256(r8) ; miss, läsning från ny plats i primärminnet rad 1 ldw r17,20(r8) ; träff, läs samma som rad 4 Lösningsförslag Sida 8 av

9 8.6. Cache-minnes-prestanda för program med slingor (loopar) Varje loop upptar 30 respektive 60 platser/ord. Loop1 med 30 ord ryms ej i en cache med bara 16 ord, men får plats i en cache med 32 ord. Loop2 med 60 ord ryms ej i en cache med 32 ord men får plats i en cache med 64 ord a) Då storleken dubbleras från 16 till 32 ord-platser kommer hit rate att öka märkbart på grund av att hela loop1 men inte loop2 nu ryms i cachen vilket den inte gör om cachen bara rymmer 16 ord. b) Då storleken dubbleras från 32 till 64 ord-platser kommer hit rate att öka märkbart på grund av att hela loop1 och nu även loop2 ryms i cachen vilket de inte gör om cachen bara rymmer 32 ord. c) Då associativiteten ökar från 1 till 2 kommer hit rate att ändras obetydligt. När loop1 exekveras ryms hela loopen i cachen oberoende av associativitet och likadant gäller för loop2. d) Då storleken ökar från 2 ord per block till 8 ord per block kommer hit rate att öka obetydligt eftersom programkörningen största delen av tiden hämtar instruktioner i looparna vilket inte ger några missar, eftersom varje loop ryms var för sig i cachen. Den lilla ökningen beror på att för detta program får färre missar första gången man refererar ord i loop1 eller loop2 eftersom man vid varje miss hämtar in 8 ord i stället för 2 ord. Med 2 ord per block får man miss vid varannan intruktionshämtning men med 8 ord per block får man miss vi var 8:e instruktionshämtning. e) Exekveringstiden kommer att minska i fall a) eftersom antal missar vid instruktionshämtning i loop1 minskar och därmed miss penalty minskar. Samma gäller i fall b) för loop2. I fall c) kommer exekveringstiden ändras obetydligt, eftersom hitrate ändras obetydligt. I fall d) kommer exekveringstiden att obetydligt minska, pga minskat antal missar. Minskningen förutsätter att medeltid per minnesreferens minskar vid ökad blockstorlek. (Med ökad blockstorlek försöker man ta vara på rumslokalitet genom att vid en miss passa på att hämta in information både från den refererade adressen och ett antal efterföljande (eller näraliggande) adresser. Om dessa andra adresser verkligen refereras och dessutom medeltiden per minnesreferens är lägre vid stora block än vid små block kan man minska exekveringstiden genom att öka blockstorlek.) Lösningsförslag Sida 9 av

10 8.7. Cache-minnes-prestanda för matrisberäkning a) Finns tidslokalitet och/eller rumslokalitet för instruktionsreferenserna i programmet? Lösningsförslag: Ja, det finns tidslokalitet: programmet kör en slinga (loop), och instruktionerna i loopen kommer att hämtas om och om igen, så många gånger som programmet kör varv i loopen. Ja, det finns rumslokalitet: efter varje instruktionshämtning så hämtas normalt nästa instruktion i adressordning vilket är en näraliggande adress. b) Finns tidslokalitet och/eller rumslokalitet för datareferenserna i programmet? Lösningsförslag: Nej, det finns inte tidslokalitet: varje arrayelement används bara en gång i detta program. Tidslokalitet är när samma minnescell läses/skrivs flera gånger med kort tidsmellanrum. Ja, det finns rumslokalitet: inom varje array går programmet igenom elementen i nummerordning, vilket gör att datorn kommer att gå igenom dem i adressordning. Rumslokalitet är när en minnescell lästs/skrivits, så läses/skrivs snart en annan minnescell med näraliggande adress, och det kommer att stämma in på datareferenserna eftersom programmet går igenom elementen i nummerordning inom varje array, vilket gör att datorn kommer att gå igenom dem i adressordning. c) Beräkna hit-rate för datacacheminnet (D-cache), när funktionen saxpy körs. Storlek (cache size): 512 byte (128 ord). Blockstorlek (line size): 32 byte (8 ord). Associativitet: direktmappat (direct-mapped). Lösningsförslag: Cacheminnet är lika stort som en array, och arrayerna ligger direkt efter varandra i minnet. Det gör att element 0 från arrayen y krockar med element 0 från arrayen x, och att båda krockar med element 0 i arrayen s. Alla elementen ska in på samma plats i cacheminnet, och då kan cacheminnet inte utnyttja rumslokaliteten i programmet. Hit-rate blir 0%. d) Ändring av storlek (cache size), jämfört med deluppgift c. Beräkna hit-rate om storleken halveras; beräkna också hit-rate om storleken fördubblas. Blockstorlek och associativitet ändras inte när storleken ändras. Lösningsförslag: Halverad storlek medför att storleken hos en array är 2 gånger storleken på cacheminnet, och 2 är ett heltal. Eftersom arrayerna ligger direkt efter varandra i minnet så kommer element 0 från arrayen y fortfarande att krocka med element 0 från arrayen x, och båda krockar med element 0 i arrayen s. Alla elementen ska in på samma plats i cacheminnet, och då kan cacheminnet inte utnyttja rumslokaliteten i programmet. Hit-rate blir 0%. Fördubblad storlek medför att storleken hos en array är ½ gånger storleken på cacheminnet. Arrayerna ligger direkt efter varandra i minnet, så x[0] och y[0] kommer inte att krocka avståndet mellan dem är 0,5 gånger cacheminnets storlek, och 0,5 är ju inget heltal. Däremot så kommer x[0] och s[0] att krocka. Tidslinjen blir som följer. Lösningsförslag Sida 10 av

11 Tidpunkt 1: läs x[0] miss, cacheminnet hämtar från och med x[0] till och med x[7]. Tidpunkt 2: läs y[0] miss, cacheminnet hämtar från och med y[0] till och med y[7]. Tidpunkt 3: skriv s[0] miss, cacheminnet kastar x[0] x[7] och hämtar från och med s[0] till och med s[7], och skriver sedan s[0]. Tidpunkt 4: läs x[1] miss, cacheminnet kastar s[0] s[7] och hämtar från och med x[0] till och med x[7]. Tidpunkt 5: läs y[1] träff Tidpunkt 6: skriv s[1] - miss, cacheminnet kastar x[0] x[7] och hämtar från och med s[0] till och med s[7], och skriver sedan s... Detta fortsätter tills... Tidpunkt 22: läs y[7] träff Tidpunkt 23: skriv s[7] - miss, cacheminnet kastar x[0] x[7] och hämtar från och med s[0] till och med s[7], och skriver sedan s Tidpunkt 24: läs x[7] miss, cacheminnet kastar s[0] s[7] och hämtar från och med x[1] till och med x[7]. Tidpunkt 25: läs x[8] miss, cacheminnet hämtar från och med x[0] till och med x[7]. Tidpunkt 26: läs y[8] miss, cacheminnet hämtar från och med y[0] till och med y[7]. Tidpunkt 27: skriv y[8] miss, cacheminnet hämtar från och med y[0] till och med y[7]. Vi kan se att tidslinjen blir: M, M, M; M, T, M; M, T, M; M, T, M; M, T, M; M, T, M; M, T, M; M, T, M; sedan upprepar den sig: M, M, M; M, T, M;... Från tidslinjen ser vi att vi har en hitrate på 7/24 29%. e) Ändring av associativitet (blocks in sets), jämfört med deluppgift c. Beräkna hit-rate om associativiteten ökas till 2; beräkna också hit-rate om associativiteten ökas till 4. Storlek och blockstorlek ändras inte då associativiteten ändras. LRU är den utbytesalgoritm som ska förutsättas. Lösningsförslag: Fördubblad associativitet innebär att vi får halva antalet rader i cacheminnet. Den cacheminnesstorlek som ska användas för att räkna på eventuella krockar halveras också. Vi får en situation som liknar den med halverad storlek i deluppgift d. Här i e-uppgiften så finns visserligen två olika platser på samma rad, men LRU i kombination med frånvaro av tidslokalitet för data medför att ett element från s kommer att kasta ut element från x, ett element från x kastar ut element från y, och ett element från y kastar ut element från s. Hitrate blir 0%. Med fyrdubblad associativitet uppstår inga krockar, och hitrate blir 7/8 87% Lösningsförslag Sida 11 av

CE_O5. Cacheminne. Hemlaboration 2.

CE_O5. Cacheminne. Hemlaboration 2. IS1500 Exempelsamling till övning CE_O5, 2014 CE_O5. Cacheminne. Hemlaboration 2. 5.1. Medeltidshistoria Diskutera förloppet då CPU:n gör en läsreferens i huvudminnet dvs information kopieras från huvudminne

Läs mer

Tentamen den 17 mars 2016 Datorteknik, EIT070

Tentamen den 17 mars 2016 Datorteknik, EIT070 Lunds Universitet LTH Tentamen den 17 mars 2016 Datorteknik, EIT070 Skrivtid: 14.00-19.00 Tillåtna hjälpmedel: Inga. Maximalt antal poäng: 50 poäng För betyg 3 krävs 20 poäng För betyg 4 krävs 30 poäng

Läs mer

Tentamen den 9 januari 2018 Datorarkitekturer med operativsystem (EITF60)

Tentamen den 9 januari 2018 Datorarkitekturer med operativsystem (EITF60) Lunds Universitet LTH Tentamen den 9 januari 2018 Datorarkitekturer med operativsystem (EITF60) Skrivtid: 08.00-13.00 Tillåtna hjälpmedel: Inga. Maximalt antal poäng: 50 poäng För betyg 3 krävs 20 poäng

Läs mer

Hemlaboration Cache Cacheminnen

Hemlaboration Cache Cacheminnen IS1200 Datorteknik IS1500 Datorteknik och komponenter Hemlaboration Cache Cacheminnen 2014-12-15 Kursdeltagarens namn:.. Datum: Godkänd av (assistentens signatur):.. IS1200/IS1500 Hemlab cache: Cacheminnen

Läs mer

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621 Lunds Universitet LTH Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621 Skrivtid: 8.00-13.00 Inga tillåtna hjälpmedel Uppgifterna i tentamen ger maximalt 60 poäng. Uppgifterna är

Läs mer

Lösningsförslag till tentamen i IS1500 Datorteknik

Lösningsförslag till tentamen i IS1500 Datorteknik Lösningsförslag till tentamen i IS1500 Datorteknik 2010-12-13 Obs! Dessa lösningsförlag kan vara felakktiga och/eller ofullständ Uppgift 1. Maskinartmetik a) Flyttalet X lagras som 0 1000 0011 000 1001

Läs mer

Minnet från processorns sida Datorteknik

Minnet från processorns sida Datorteknik Minnet från processorns sida Datorteknik ERIK LARSSON Processorn ger kommandon/instruktioner med en adress och förväntar sig data. Exempel: READ(ADR) -> DATA Fysisk adress Logisk adress READ 00001000 READ

Läs mer

Föreläsningsanteckningar 5. Cacheminnen

Föreläsningsanteckningar 5. Cacheminnen Föreläsningsanteckningar 5. Cacheminnen Olle Seger 2012 Anders Nilsson 2016 1 Inledning Bakgrunden till att cacheminnen behövs för nästan alla datorer är enkel. Vi kan kallt räkna med att processorn är

Läs mer

En processor kan ha en klockfrekvens på flera GHz. Det går alltså a9 exekvera en instruk=on väldigt for, givet a9 instruk=onen finns i processorn.

En processor kan ha en klockfrekvens på flera GHz. Det går alltså a9 exekvera en instruk=on väldigt for, givet a9 instruk=onen finns i processorn. 1 2 En processor kan ha en klockfrekvens på flera GHz. Det går alltså a9 exekvera en instruk=on väldigt for, givet a9 instruk=onen finns i processorn. Instruk=onerna =ll programmet som exekveras finns

Läs mer

Datorsystemteknik för E/D

Datorsystemteknik för E/D Tentamen i kursen Datorsystemteknik (EDA330 för D och EDA370 för E) 19/8 2000 1(8) Tentamen i kursen Datorsystemteknik (EDA330 för D och EDA370 för E) Datorsystemteknik för E/D 19/8 2000 Tentamensdatum:

Läs mer

Hemlaboration Cache Cacheminnen

Hemlaboration Cache Cacheminnen IS1200 Datorteknik IS1500 Datorteknik och komponenter Hemlaboration Cache Cacheminnen 2011-08-30 Kursdeltagarens namn:.. Datum: Godkänd av (assistentens signatur):.. IS1200/IS1500 Hemlab cache: Cacheminnen

Läs mer

Tentamen den 14 januari 2015 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng

Tentamen den 14 januari 2015 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng Lunds Universitet LTH Ingenjörshögskolan, Helsingborg Tentamen den 14 januari 2015 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng Skrivtid: 08.00-13.00 Tillåtna hjälpmedel: Inga. Maximalt antal

Läs mer

Cacheminne och adressöversättning

Cacheminne och adressöversättning Cacheminne och adressöversättning From: Central Processing Box 1 COMPUTERLAND 1 Virtual $00005A3C From: Central Processing Box 1 COMPUTERLAND 1 Physical $00005A3C $007B2A3C Innehåll Cacheminnen Cacheminnen

Läs mer

Digitalteknik och Datorarkitektur 5hp

Digitalteknik och Datorarkitektur 5hp Digitalteknik och Datorarkitektur 5hp Minnes-hierarkier och Cache 12 maj 2008 karl.marklund@it.uu.se issa saker använder vi ofta Dessa saker vill vi ha nära till hands Storleken har betydelse Litet är

Läs mer

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013 Rahim Rahmani (rahim@dsv.su.se) Division of ACT Department of Computer and Systems Sciences Stockholm University SVAR TILL TENTAMEN I DATORSYSTEM, VT2013 Tentamensdatum: 2013-03-21 Tentamen består av totalt

Läs mer

Datorarkitekturer med Operativsystem

Datorarkitekturer med Operativsystem Lunds Tekniska Högskola Campus Helsingborg Datorarkitekturer med Operativsystem EDT621 Rapport Cacheminneshantering för ARM3-processorer 7 december 2015 Pierre Aupeix dat11pau@student.lu.se 1 Abstract

Läs mer

HF0010. Introduktionskurs i datateknik 1,5 hp

HF0010. Introduktionskurs i datateknik 1,5 hp HF0010 Introduktionskurs i datateknik 1,5 hp Välkommna - till KTH, Haninge, Datateknik, kursen och till första steget mot att bli programmerare! Er lärare och kursansvarig: Nicklas Brandefelt, bfelt@kth.se

Läs mer

Exempeltentamen Datorteknik, EIT070,

Exempeltentamen Datorteknik, EIT070, Lunds Universitet LTH Exempeltentamen Datorteknik, EIT070, Skrivtid: xx.00-xx.00 Tillåtna hjälpmedel: Inga. Maximalt antal poäng: 50 poäng För betyg 3 krävs 20 poäng För betyg 4 krävs 30 poäng För betyg

Läs mer

Tentamen i Digitala system - EITA15 15hp varav denna tentamen 4,5hp

Tentamen i Digitala system - EITA15 15hp varav denna tentamen 4,5hp Tentamen i Digitala system EITA5 5hp varav denna tentamen 4,5hp Institutionen för elektro och informationsteknik Campus Helsingborg, LTH 289 8. 3. (förlängd 4.) Uppgifterna i tentamen ger totalt 6 poäng.

Läs mer

Tentamen i IS1500/IS1200/2G1518 Datorteknik fredagen den 19 augusti 2011 kl

Tentamen i IS1500/IS1200/2G1518 Datorteknik fredagen den 19 augusti 2011 kl Tentamen i IS1500/IS1200/2G1518 Datorteknik fredagen den 19 augusti 2011 kl 14.00 19.00 Examinator: Fredrik Lundevall (IS1500), Johan Wennlund (IS1200, 2G1518). Jourhavande lärare: Johan Wennlund. Tentamensuppgifterna

Läs mer

Tentamen den 14 januari 2016 Datorarkitektur med operativsystem, EDT621

Tentamen den 14 januari 2016 Datorarkitektur med operativsystem, EDT621 Lunds Universitet LTH Tentamen den 14 januari 2016 Datorarkitektur med operativsystem, EDT621 Skrivtid: 08.00-13.00 Tillåtna hjälpmedel: Inga. Maximalt antal poäng: 50 poäng För betyg 3 krävs 20 poäng

Läs mer

Tentamen den 18 mars svar Datorteknik, EIT070

Tentamen den 18 mars svar Datorteknik, EIT070 Lunds Universitet LTH Tentamen den 18 mars 2015 - svar Datorteknik, EIT070 Skrivtid: 14.00-19.00 Tillåtna hjälpmedel: Inga. Maximalt antal poäng: 50 poäng För betyg 3 krävs 20 poäng För betyg 4 krävs 30

Läs mer

SVAR TILL TENTAMEN I DATORSYSTEM, HT2013

SVAR TILL TENTAMEN I DATORSYSTEM, HT2013 Rahim Rahmani (rahim@dsv.su.se) Division of SAS Department of Computer and Systems Sciences Stockholm University SVAR TILL TENTAMEN I DATORSYSTEM, HT2013 Tentamensdatum: 2013-10-30 Tentamen består av totalt

Läs mer

Datorsystem. Tentamen

Datorsystem. Tentamen Datorsystem Tentamen 2012-03-17 Instruktioner Samtliga svar skall vara motiverade och läsbara. Eventuella tabeller, illustrationer och beräkningar som används för att nå svaret ska också finnas med i lösningen.

Läs mer

Snapdragon 810: Cacheminnet

Snapdragon 810: Cacheminnet Snapdragon 810: Cacheminnet Daniel Eckerström dat14dec@student.lu.se Sammanfattnig Snapdragon 810 innehåller två olika processor arkitekturer, ARM Cortex-A53 samt Cortex-A57. Detta för att kunna på ett

Läs mer

Datorteknik ERIK LARSSON

Datorteknik ERIK LARSSON Datorteknik ERIK LARSSON Laborationer Gå bara på tillfällen där du är anmäld. Moment svarar mot 1.5hp, dvs 40 timmar arbete Schemalagd tid: 4*2 (lektioner)+4*4(laborationer)=20 timmar Material: Finns på

Läs mer

Multi-ported cache En rapport om några lösningar till att få flera minnesaccesser simultant.

Multi-ported cache En rapport om några lösningar till att få flera minnesaccesser simultant. Multi-ported cache En rapport om några lösningar till att få flera minnesaccesser simultant. Sammanfattning När processorns klockhastighet ökar medför det en ökning av instruktioner vilket såklart ökar

Läs mer

Cacheprobe: programbibliotek för extrahering av cacheminnesparametrar

Cacheprobe: programbibliotek för extrahering av cacheminnesparametrar Cacheprobe: programbibliotek för extrahering av cacheminnesparametrar Gabriel Gerhardsson Cacheprobe p.1/38 Abstract Kan analytiskt ta reda på associativitet, line storlek och storlek på processorns cacheminnen

Läs mer

Svar till tentamen den 16 december 2013 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng

Svar till tentamen den 16 december 2013 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng Lunds Universitet LTH Ingenjörshögskolan, Helsingborg Svar till tentamen den 16 december 2013 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng Skrivtid: 08.00-13.00 Tillåtna hjälpmedel: Inga. Maximalt

Läs mer

Jämförelse av skrivtekniker till cacheminne

Jämförelse av skrivtekniker till cacheminne Jämförelse av skrivtekniker till cacheminne 1 Innehåll 1. Sammanfattning 2. Inledning 3. Diskussion 4. Referenslista 1. Sammanfattning En rapport innehållande jämförelser av olika skrivtekniker till minnen

Läs mer

Datorsystem. Tentamen 2011-10-29

Datorsystem. Tentamen 2011-10-29 Datorsystem Tentamen 2011-10-29 Instruktioner Samtliga svar skall vara motiverade och läsbara. Eventuella tabeller och beräkningar som används för att nå svaret ska också finnas med i lösningen. Ett svar

Läs mer

Digitala System: Datorteknik ERIK LARSSON

Digitala System: Datorteknik ERIK LARSSON Digitala System: Datorteknik ERIK LARSSON Översikt Minnets komponenter Minneshierarkin Cacheminne Paging Virtuellt minne Minnets komponenter Enhet för indata Primärminne (CPU) Enhet för utdata Sekundärminne

Läs mer

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U) TSEA8 Datorteknik Y (och U), föreläsning, Kent Palmkvist 8-4-6 TSEA8 Datorteknik Y (och U) Föreläsning Kent Palmkvist, ISY Praktiska kommentarer Laboration 4 tips Sorteringsalgoritm använder A > B i flödesschemat

Läs mer

MESI i Intel Core 2 Duo

MESI i Intel Core 2 Duo MESI i Intel Core 2 Duo Sammanfattning Denna rapport beskriver en processor (Intel Core 2 Duo) vars cache coherence protokoll är MESI. Rapporten beskriver hur processorn är uppbyggd, hur många kärnor den

Läs mer

Fö 2: Minnen. Introduktion. Primärminnet. Interna och externa minnen. Introduktion, Klassificiering

Fö 2: Minnen. Introduktion. Primärminnet. Interna och externa minnen. Introduktion, Klassificiering Fö 2: Minnen Introduktion, Klassificiering Primärminne Sekundärminne Minneshiearki Cache-minne Introduktion Primärminnet används för att lagra program och data som är aktuella att använda. Sekundärminnet

Läs mer

Cacheminne i en Intel Core 2 Duo-processor

Cacheminne i en Intel Core 2 Duo-processor Peter Hesslow EDT621 Cacheminne i en Intel Core 2 Duo-processor Abstrakt Det finns många olika sätt att bygga upp ett datorminne på, och med en flerkärnig processor så blir alternativen ännu fler. Denna

Läs mer

Grundläggande datavetenskap, 4p

Grundläggande datavetenskap, 4p Grundläggande datavetenskap, 4p Kapitel 2 Datamanipulation, Processorns arbete Utgående från boken Computer Science av: J. Glenn Brookshear 2004-11-09 IT och Medier 1 Innehåll CPU ALU Kontrollenhet Register

Läs mer

Digitala System: Datorteknik ERIK LARSSON

Digitala System: Datorteknik ERIK LARSSON Digitala System: Datorteknik ERIK LARSSON Dator Primärminne Instruktioner och data Data/instruktioner Kontroll Central processing unit (CPU) Fetch instruction Execute instruction Programexekvering (1)

Läs mer

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U) TSEA8 Datorteknik Y (och U) Föreläsning Kent Palmkvi, ISY TSEA8 Datorteknik Y (och U), föreläsning, Kent Palmkvi 7-4- Dagens föreläsning Latens/genomrömning Minneyper Läsminne (ROM) Läs och skriv minnen

Läs mer

Lösningsförslag till Tenta i Mikrodator

Lösningsförslag till Tenta i Mikrodator Lösningsförslag till Tenta i Mikrodator 050113 1. Vilka register finns det i processorn och vad används dessa till? D0 till D7: Dataregister som används för beräkningar A0 till A6: Adressregister som används

Läs mer

Uppgift 1: a) u= a c + a bc+ ab d +b cd

Uppgift 1: a) u= a c + a bc+ ab d +b cd Uppgift 1: a) u= a c a bc ab d b cd b) a b c d u 0 0 0 0 1 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 0 1 0 0 1 0 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 0 0 0 1 1 0 0 1 0 1 0 1 0 1 1 0 1 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1

Läs mer

Digitala System: Datorteknik ERIK LARSSON

Digitala System: Datorteknik ERIK LARSSON Digitala System: Datorteknik ERIK LARSSON Huvudled (H) Trafikljus för övergångsställe Trafikljus för huvudled (H) Trafikljus: Sväng vänster (H->T) Gående - vänta Trafikljus för tvärgata (T) Tvärgata (T)

Läs mer

Hantering av hazards i pipelines

Hantering av hazards i pipelines Datorarkitektur med operativsystem Hantering av hazards i pipelines Lisa Arvidsson IDA2 Inlämningsdatum: 2018-12-05 Abstract En processor som använder pipelining kan exekvera ett flertal instruktioner

Läs mer

Datorsystem 2 CPU. Förra gången: Datorns historia Denna gång: Byggstenar i en dators arkitektur. Visning av Akka (för de som är intresserade)

Datorsystem 2 CPU. Förra gången: Datorns historia Denna gång: Byggstenar i en dators arkitektur. Visning av Akka (för de som är intresserade) Datorsystem 2 CPU Förra gången: Datorns historia Denna gång: Byggstenar i en dators arkitektur CPU Visning av Akka (för de som är intresserade) En dators arkitektur På en lägre nivå kan vi ha lite olika

Läs mer

Random Access Memory. Amare Reda Jenny Holmberg Henrik Kreipke Gaylord Kaya

Random Access Memory. Amare Reda Jenny Holmberg Henrik Kreipke Gaylord Kaya Random Access Memory Amare Reda Jenny Holmberg Henrik Kreipke Gaylord Kaya Introduktion Historia Vad är RAM? Hur fungerar RAM? Dataöverföring, tidsklocka och termer Vilka är de olika typerna av RAM? Vad

Läs mer

Mer datorarkitektur. En titt I datorn Minnen

Mer datorarkitektur. En titt I datorn Minnen Mer datorarkitektur En titt I datorn Minnen von Neumann-modellen von Neumann-modellen CPU (Central Processing Unit) Styrenhet hämtar programinstruktioner ALU (Arithmetic and Logical Unit) utför beräkningar

Läs mer

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

Per Holm Lågnivåprogrammering 2014/15 24 / 177. int och double = = 2, 147, 483, 647 Lågnivåprogrammering Föreläsning 2 Lågnivåprogrammering Förberedelse inför laboration 2. Maskinspråk, assemblerspråk Talrepresentation En enkel dator, komponenter Instruktionsformat, instruktionscykel

Läs mer

32 Bitar Blir 64 Sammanfattning

32 Bitar Blir 64 Sammanfattning 32 Bitar Blir 64 Sammanfattning Syftet med rapporten är att ge en insyn i det tillvägagångssätt och problem som uppstod i utvecklingen från 32 bitars CPUs till 64 bitars CPUs samt inblick i skillnaden

Läs mer

Datorarkitekturer med operativsystem ERIK LARSSON

Datorarkitekturer med operativsystem ERIK LARSSON Datorarkitekturer med operativsystem ERIK LARSSON Översikt Minnets komponenter Minneshierarkin Cacheminne Paging Virtuellt minne Minnets komponenter Enhet för indata Primärminne (CPU) Enhet för utdata

Läs mer

Cacheminne i en AMD Opteron Processor

Cacheminne i en AMD Opteron Processor Handledare: Erik Larsson Lunds Tekniska Högskola HT15 Cacheminne i en AMD Opteron Processor En rapport om cacheminne och dess struktur, i en 12 kärnig AMD Opteron Magny-Cours processor. Författare: Hamza

Läs mer

Öka prestanda i Shared-Cache multi-core processorer

Öka prestanda i Shared-Cache multi-core processorer Öka prestanda i Shared-Cache multi-core processorer 1. Abstract Många processorer har nuförtiden flera kärnor. Det är även vanligt att dessa kärnor delar på högsta nivås cachen för att förbättra prestandan.

Läs mer

Lösningsförslag till Tenta i Mikrodator

Lösningsförslag till Tenta i Mikrodator Lösningsförslag till Tenta i Mikrodator 040117 1. Vilka register finns det i processorn och vad används dessa till? D0 till D7: Dataregister som används för beräkningar A0 till A6: Adressregister som används

Läs mer

Filsystem - Inode. Datorteknik. Minnets komponenter. Programexekvering. Enhet för indata. Enhet för utdata CPU. Primärminne.

Filsystem - Inode. Datorteknik. Minnets komponenter. Programexekvering. Enhet för indata. Enhet för utdata CPU. Primärminne. Datorteknik Filsystem - Inode ERIK LARSSON ABBA: Dancing Queen Minnets komponenter Programexekvering Enhet för indata CPU Enhet för utdata Program i högnivåspråk.. Z:=(Y+X)*3. Kompilator Exekverbart program

Läs mer

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

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler Talsystem Talsystem - binära tal F1.1) 2 n stycken tal från 0 till 2 n 1 F1.2) 9 bitar (512 kombinationer) Talsystem - 2-

Läs mer

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

F2: Motorola Arkitektur. Assembler vs. Maskinkod Exekvering av instruktioner i Instruktionsformat MOVE instruktionen 68000 Arkitektur F2: Motorola 68000 I/O signaler Processor arkitektur Programmeringsmodell Assembler vs. Maskinkod Exekvering av instruktioner i 68000 Instruktionsformat MOVE instruktionen Adresseringsmoder

Läs mer

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

Lågnivåprogrammering. Föreläsning 2 Lågnivåprogrammering. Binära tal. En enkel modell av datorns inre Lågnivåprogrammering Föreläsning 2 Lågnivåprogrammering Förberedelse inför laboration 2. Maskinspråk, assemblerspråk Talrepresentation En enkel dator, komponenter Instruktionsformat, instruktionscykel

Läs mer

Lösningar till tentamen i EIT070 Datorteknik

Lösningar till tentamen i EIT070 Datorteknik Lösningar till tentamen i EIT070 Datorteknik Institutionen för Elektro- och informationsteknik, LTH Onsdagen den 13 mars 2013, klockan 14:00 19:00 i Vic 2 A-D, 3 A-C. Tillåtna hjälpmedel: på tentan utdelad

Läs mer

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

En Von Neumann-arkitektur ( Von Neumann-principen i föreläsning 1) innebär: Lösningsförslag för 725G45-tentan 3/11-10 1. Vad menas med Von Neumann-arkitektur? (2p) En Von Neumann-arkitektur ( Von Neumann-principen i föreläsning 1) innebär: Data och instruktioner lagras i samma

Läs mer

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U) Praktiska kommentarer TSEA8 Datorteknik Y (och U) Föreläsning Kent Palmkvist, ISY Dagens föreläsning RISC Mer information om hur arkitekturen fungerar Begränsningar Lab extra tillfälle för redovisning

Läs mer

5:3 Datorn och datorns delar

5:3 Datorn och datorns delar 5:3 Datorn och datorns delar Nu har vi gått igenom ett antal saker som gör det möjligt att få ihop en dator, och förstå hur den är uppbyggd. Här kommer en kort repetition: 1. Du förstår det binära talsystemet,

Läs mer

Fö 8: Operativsystem II. Minneshantering. Minneshantering (1) Minneshantering (2) Minneshantering och Virtuelltminne.

Fö 8: Operativsystem II. Minneshantering. Minneshantering (1) Minneshantering (2) Minneshantering och Virtuelltminne. Fö 8: Operativsystem II Minneshantering och Virtuelltminne. Virtuella I/O enheter och Filsystemet. Flerprocessorsystem. Minneshantering Uniprogrammering: Minnet delas mellan operativsystem och användarprogrammet.

Läs mer

CPU. Carry/Borrow IX. Programräknare

CPU. Carry/Borrow IX. Programräknare Laboration:. Jämförelser mellan assembler och C. CPU ACCA ACCD ACCB 8-bitars ackumulatorer eller 16- bitars ackumulator CCR 1 1 1 SXH I NZVC Flaggregister Carry/Borrow IX IY PC Indexregister X Indexregister

Läs mer

Några gamla tentamensuppgifter: Minneshantering

Några gamla tentamensuppgifter: Minneshantering 1 Tentamen 1992-08-26 5. I ett virtuellt minne med skiva är primärminnets accesstid 1 mikrosekund, sidstorleken 1 K, skivans rotationstid 10 millisekunder, inställningstiden för skivans arm 5 millisekunder

Läs mer

Minnets komponenter. Digitala System: Datorteknik. Programexekvering. Programexekvering. Enhet för utdata. Enhet för indata CPU.

Minnets komponenter. Digitala System: Datorteknik. Programexekvering. Programexekvering. Enhet för utdata. Enhet för indata CPU. Digitala System: Datorteknik Minnets komponenter ERIK LARSSON Enhet för indata CPU Enhet för utdata Sekundärminne Programexekvering Program i högnivåspråk.. Z:=(Y+X)*3. Kompilator Exekverbart program i

Läs mer

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #23 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Översikt När flera minnesmoduler placeras i processorns

Läs mer

Föreläsning 5: Introduktion av pekare

Föreläsning 5: Introduktion av pekare Föreläsning 5: Introduktion av pekare Det bör påpekas att det som tas upp i introduktionen inte är reella exempel på kod. Man anväder inte pekare till att peka på enstaka heltal som i exemplen nedan, men

Läs mer

Datastrukturer, algoritmer och programkonstruktion (DVA104, VT 2015) Föreläsning 6

Datastrukturer, algoritmer och programkonstruktion (DVA104, VT 2015) Föreläsning 6 Datastrukturer, algoritmer och programkonstruktion (DVA104, VT 2015) Föreläsning 6? DAGENS AGENDA Komplexitet Ordobegreppet Komplexitetsklasser Loopar Datastrukturer Några nyttiga regler OBS! Idag jobbar

Läs mer

Ett minneselements egenskaper. F10: Minneselement. Latch. SR-latch. Innehåll:

Ett minneselements egenskaper. F10: Minneselement. Latch. SR-latch. Innehåll: F: Minneselement Innehåll: - Latchar - Flip-Flops - egister - Läs- och skrivminne (andom-access Memory AM) - Läsminne (ead Only Memory OM) Ett minneselements egenskaper Generellt sett så kan följande operationer

Läs mer

Cache coherence hos multicoreprocessorer

Cache coherence hos multicoreprocessorer Cache coherence hos multicoreprocessorer Benjamin Holmqvist, EDT621 December 5, 2016 1 Contents 1 Inledning 3 2 Syfte 3 3 Cache Coherence 3 3.1 Implementering.......................... 4 3.2 Snoop baserade..........................

Läs mer

In- och Utenheter. Fö 3: In/Ut matning och kopplingsstruktur. Några exempel. Egenskaper. In- och Utenheter. Styrning.

In- och Utenheter. Fö 3: In/Ut matning och kopplingsstruktur. Några exempel. Egenskaper. In- och Utenheter. Styrning. Fö 3: In/Ut matning och kopplingsstruktur In- och Utenheter In- och Utenheter. Styrning. I/O-kanalenheter Kopplingsstruktur. Buss. Två huvudsakliga typer av I/O enheter: - Interaktiva. Exempelvis en terminal.

Läs mer

System S. Datorarkitektur - en inledning. Organisation av datorsystem: olika abstraktionsnivåer. den mest abstrakta synen på systemet

System S. Datorarkitektur - en inledning. Organisation av datorsystem: olika abstraktionsnivåer. den mest abstrakta synen på systemet Datorarkitektur - en inledning Organisation av datorsystem: olika abstraktionsnivåer System S den mest abstrakta synen på systemet A B C Ett högnivåperspektiv på systemet a1 b1 c1 a2 b3 b2 c2 c3 En mera

Läs mer

Datorteknik 2 (AVR 2)

Datorteknik 2 (AVR 2) Namn: Laborationen godkänd: Digitala system 15 hp Datorteknik 2 (AVR 2) LTH Ingenjörshögskolan vid Campus Helsingborg Enkel in- och utmatning. Drivrutiner. Bithantering. I denna laboration ska vi förbättra

Läs mer

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

Datorsystemteknik D. Lösningar till tentamen i kursen EDA330 14/1 2000 1(6) Lösningar till tentamen i kursen EDA330 Datorsystemteknik D 14/1 2000 Följande är skisser till lösningar av uppgifterna. Full poäng på en uppgift kräver i de flesta fall en något fylligare motivering.

Läs mer

Datorsystem. Exempeltentamen 2011-10-18

Datorsystem. Exempeltentamen 2011-10-18 Datorsystem Exempeltentamen 2011-10-18 Instruktioner Samtliga svar skall vara motiverade och läsbara. Eventuella tabeller och beräkningar som används för att nå svaret ska också finnas med i lösningen.

Läs mer

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #17 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Tallriksmodellen Stackoperationer Element kan endast

Läs mer

TDDC76 - Programmering och Datastrukturer

TDDC76 - Programmering och Datastrukturer TDDC76 - Programmering och Datastrukturer Pekare och Listor Eric Elfving Institutionen för datavetenskap 1 / 20 Översikt Internminne Pekare Dynamiska datastrukturer (Enkellänkade) listor 2 / 20 Internminne

Läs mer

CE_O3. Nios II. Inför lab nios2time

CE_O3. Nios II. Inför lab nios2time IS1200 Exempelsamling till övning CE_O3, 2015 CE_O3. Nios II. Inför lab nios2time 3.1. Logiska operationer (se uppgift 1.2 c) Repetera (eller lär dig) innebörden av de logiska operationerna "bitvis AND",

Läs mer

Övning 6. Parallellport, timer

Övning 6. Parallellport, timer Övning 6 Parallellport, timer 6.1 de2_pio_toggles18 Memory-Mapped addresses LEDG8 LEDR17 LEDR16 LEDR15 LEDR14 LEDR13 LEDR12 LEDR11 LEDR10 LEDR9 LEDR8 LEDR7 LEDR6 LEDR5 LEDR4 LEDR3 LEDR2 LEDR1 LEDR0 LEDG7

Läs mer

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

Besvara de elektroniska frågorna (se kurshemsidan). Läs kapitel i kursbok Namn: Laborationen godkänd: Laboration 2. Cacheminne Laborationens syfte I laborationen ska du bekanta dig med cacheminnen. Genom laborationen fås kunskap om hur cacheminnen är konstruerade och hur de

Läs mer

Datorarkitekturer med operativsystem ERIK LARSSON

Datorarkitekturer med operativsystem ERIK LARSSON Datorarkitekturer med operativsystem ERIK LARSSON Semantic gap Alltmer avancerade programmeringsspråk tas fram för att göra programvaruutveckling mer kraftfull Dessa programmeringsspråk (Ada, C++, Java)

Läs mer

Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 Mikrodatorteknik

Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 Mikrodatorteknik Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 - Inbyggda system - Analog till digital signal - Utvecklingssystem, målsystem - Labutrustningen - Uppbyggnad av mikrokontroller - Masinkod, assemblerkod

Läs mer

0.1. INTRODUKTION 1. 2. Instruktionens opcode decodas till en språknivå som är förstålig för ALUn.

0.1. INTRODUKTION 1. 2. Instruktionens opcode decodas till en språknivå som är förstålig för ALUn. 0.1. INTRODUKTION 1 0.1 Introduktion Datorns klockfrekvens mäts i cykler per sekund, eller hertz. En miljon klockcykler är en megahertz, MHz. L1 cache (level 1) är den snabbaste formen av cache och sitter

Läs mer

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

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 F3 Föreläsning i Mikrodatorteknink 2006-08-29 Kärnan i microcontrollern består av ett antal register och en ALU. Till detta kommer också ett antal portar. Det finns 64 st portar. Några är anslutna mot

Läs mer

Teoretisk del. Facit Tentamen TDDC (6)

Teoretisk del. Facit Tentamen TDDC (6) Facit Tentamen TDDC30 2014-08-29 1 (6) Teoretisk del 1. (6p) "Snabba frågor" Alla svar motiveras väl. a) Vad är skillnaden mellan synligheterna public, private och protected? (1p) Svar:public: Nåbar för

Läs mer

Datorhistorik. Föreläsning 3 Datorns hårdvara EDSAC. Eniac. I think there is a world market for maybe five computers. Thomas Watson, IBM, 1943

Datorhistorik. Föreläsning 3 Datorns hårdvara EDSAC. Eniac. I think there is a world market for maybe five computers. Thomas Watson, IBM, 1943 Datorhistorik Föreläsning 3 Datorhistorik Datorns uppbyggnad, komponenter Processor, primärminne, sekundärminne Minneshierarkier Inbyggda system, stora datorer I think there is a world market for maybe

Läs mer

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

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler Talsystem Talsystem - binära tal F1.1. Hur många unsigned integers kan man göra med n bitar? Vilket talområde får dessa

Läs mer

Pipelining i Intel 80486

Pipelining i Intel 80486 Lunds Universitet Pipelining i Intel 80486 EITF60 Datorarkitekturer med operativsystem Martin Wiezell 2017-12-04 Abstract This paper gives a brief description of the instruction pipeline of the Intel 80486

Läs mer

Klassdeklaration. Metoddeklaration. Parameteröverföring

Klassdeklaration. Metoddeklaration. Parameteröverföring Syntax: Class Declaration Modifier Class Body Basic Class Member Klassdeklaration class Class Member Field Declaration Constructor Declaration Method Declaration Identifier Class Associations Motsvarar

Läs mer

4 grundregler. Minneshantering. Problemet. Windows minkrav

4 grundregler. Minneshantering. Problemet. Windows minkrav 4 grundregler 1. Man kan aldrig få för mycket minne 2. Minnet kan aldrig bli för snabbt Minneshantering 3. Minne kan aldrig bli för billigt 4. Programmens storlek ökar fortare än minnet i datorerna (känns

Läs mer

Superscalar Bra: Hårdvaran löser allt: Hårdvara detekterar poten6ell parallellism av instruk6oner Hårdvara försöker starta exekvering (issue) av så

Superscalar Bra: Hårdvaran löser allt: Hårdvara detekterar poten6ell parallellism av instruk6oner Hårdvara försöker starta exekvering (issue) av så 1 Superscalar Bra: Hårdvaran löser allt: Hårdvara detekterar poten6ell parallellism av instruk6oner Hårdvara försöker starta exekvering (issue) av så många instruk6oner som möjligt parallellt Hårdvara

Läs mer

Programmeringsteknik med C och Matlab

Programmeringsteknik med C och Matlab Programmeringsteknik med C och Matlab Kapitel 6: Filhantering Henrik Björklund Umeå universitet 13 oktober 2009 Björklund (UmU) Programmeringsteknik 13 oktober 2009 1 / 22 Textfiler Filer är sekvenser

Läs mer

Rapport (1,5 HP) Lunds Universitet HT15

Rapport (1,5 HP) Lunds Universitet HT15 Rapport (1,5 HP) Lunds Universitet HT15 Cache-koherens protokoll i Intel Core i7 En rapport om cache-koherens och protokollet som används i Intel Core i7 processorer för att hålla minnet koherent Författare:

Läs mer

Datorsystem. Tentamen 2011-10-29

Datorsystem. Tentamen 2011-10-29 Datorsystem Tentamen 20-0-29 Instruktioner Samtliga svar skall vara motiverade och läsbara. Eventuella tabeller och beräkningar som används för att nå svaret ska också finnas med i lösningen. Ett svar

Läs mer

Tentamen i Digitala system - EITA15 15hp varav denna tentamen 4,5hp

Tentamen i Digitala system - EITA15 15hp varav denna tentamen 4,5hp Tentamen i Digitala system - EITA15 15hp varav denna tentamen 4,5hp Institutionen för elektro- och informationsteknik Campus Helsingborg, LTH 2018-01-09 8.00-13.00 (förlängd 14.00) Uppgifterna i tentamen

Läs mer

Datorsystem. Tentamen 2012-03-17

Datorsystem. Tentamen 2012-03-17 Datorsystem Tentamen 2012-03-17 Instruktioner Samtliga svar skall vara motiverade och läsbara. Eventuella tabeller, illustrationer och beräkningar som används för att nå svaret ska också finnas med i lösningen.

Läs mer

Läsminne Read Only Memory ROM

Läsminne Read Only Memory ROM Läsminne Read Only Memory ROM Ett läsminne har addressingångar och datautgångar Med m addresslinjer kan man accessa 2 m olika minnesadresser På varje address finns det ett dataord på n bitar Oftast har

Läs mer

CE_O2. Nios II. Subrutiner med mera.

CE_O2. Nios II. Subrutiner med mera. IS1500 Lösningsförslag till övning CE_O2 2014 CE_O2. Nios II. Subrutiner med mera. 2.1. Binära lagringsformat R-type: (Register-format) ra (5 bit) rb (5 bit) rc (5 bit) operationskod (17 bit) Detta format

Läs mer

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

Datorarkitektur I. Tentamen Lördag 10 April Ekonomikum, B:154, klockan 09:00 14:00. Följande gäller: Skrivningstid: Fråga Datorarkitektur I Tentamen Lördag 10 April 2010 Ekonomikum, B:154, klockan 09:00 14:00 Examinator: Karl Marklund 0704 73 32 17 karl.marklund@it.uu.se Tillåtna hjälpmedel: Penna Radergummi Linjal Följande

Läs mer

Datorarkitekturer med operativsystem ERIK LARSSON

Datorarkitekturer med operativsystem ERIK LARSSON Datorarkitekturer med operativsystem ERIK LARSSON Dator Primärminne Instruktioner och data Data/instruktioner Kontroll Central processing unit (CPU) Fetch instruction Execute instruction Programexekvering

Läs mer

TDDC76 - Programmering och Datastrukturer

TDDC76 - Programmering och Datastrukturer TDDC76 - Programmering och Datastrukturer Pekare och Listor Eric Elfving Institutionen för datavetenskap 1 / 21 Översikt Internminne Pekare Dynamiska datastrukturer (Enkellänkade) listor 2 / 21 Internminne

Läs mer