119 Minnesallokering. Detta kapitel behandlar kort, som vanligt, dessa 'policies' och avslutas med ett avsnitt om 'caches'.

Storlek: px
Starta visningen från sidan:

Download "119 Minnesallokering. Detta kapitel behandlar kort, som vanligt, dessa 'policies' och avslutas med ett avsnitt om 'caches'."

Transkript

1 Allmänt För att realisera ett virtuellt minne behövs minst två nivåer i minneshierarkin och dessutom 1. En virtuell adressrymd som är större än den fysiska,. En adressavbildningsmekanism och 3. Allokerings'policies' som avser a. utbyte av sidor eller segment: Vilket block ska kastas ut vid behov? b. placering av segment: Var ska ett segment som behövs placeras? c. hämtning: När ska ett block läsas in? Detta kapitel behandlar kort, som vanligt, dessa 'policies' och avslutas med ett avsnitt om 'caches'. 7.. Placeringsalgoritmer Syftet med dessa är att uppnå ett så bra minnesutnyttande, dvs så liten extern fragmentering, som möligt. För sidindelade system är detta ett trivialt problem. Vare sidoram duger lika bra och valet påverkar inte prestanda på något vis. För segment med olika storlek finns åtminstone fyra tänkbara metoder. Alla dessa bygger på att minneshanteraren katalogiserar alla lediga utrymmen. Dessa brukar arrangeras som en länkad lista; en sk fri lista: I vare block åtgår en plats som anger nästa "hål" i kedan och en plats som anger storleken 'First fit' betyder att listan över lediga utrymmen genomsöks från böran till dess ett tillräckigt stort ledigt utrymme hittas. Om inget sådant hittas måste processen blockeras till dess en annan process frisläpper minne. I 'rotating first fit' genomsöks listan cirkulärt från den plats som användes gången före 'Best fit' betyder att listan genomsöks till dess minsta tillräckligt stora utrymme hittas. Denna metod tenderar att ackumulera många "hål" som är så små att de förblir outnyttade. Exempel. Det är lätt att konstruera exempel där endera av 'best fit' eller 'first fit' är bäst. Antag att det initialt finns ett ledigt block av storlek 000 och ett av storlek Med en sekvens av behov på 100 och 1600 fås lediga block för First fit: Först 800, 1500, varefter processen måste blockeras. Best fit: Först 000, 300 och sedan 00, 300, så att 'best fit' (bf) är bäst. -- Med en sekvens av behov 100, 100 och 700 fås lediga block för First fit: Först 800, 1500, sedan 800, 100 och sist 100, 100. Best fit: Först 000, 300, sedan 600, 300, varefter processen måste blockeras, så att 'first fit är' (ff) bäst. I båda metoderna är det vanligt att arrangera listorna efter adresser. Om man sorterar efter storlek blir de båda metoderna identiska. Man skulle kunna tro att 'best fit' generellt sett ger bäst minnesutnyttande. Omfattande simuleringsexperiment visar att så inte är fallet. I skenet av detta kunde kanske fölander fungera: 'Worst fit' Tag det största lediga utrymmet. Motivet är att av det block som allokeras skulle tillräckligt mycket plats restera för att kunna användas till ett nytt segment. Experiment visar dock att 'worst fit' (wf) är klart sämst av de tre åtminstone för 'stora' segment.

2 10 Experimentell erfarenhet eller statistisk analys visar att utnyttandegraden för dessa metoder kan uttryckas med den sk 50%-regeln: Givet n allokerade block så förloras 0.5n block på grund av fragmentering. Figur 7.1 påvisar ett någorlunda annat experimentellt resultat. Minnesutnyttande 100% 80% 70% BF WF FF Medelstorlek på "segment" Figur 7.1 BF, FF, WF; en ämförelse Observera att sk kompaktering (= flyttning av allokerade block till en sammanhängande area) har två begränsningar: - Avsevärd tid åtgår för denna process, varför man oftast avstår. - En eventuell kompaktering måste åtfölas av relokering; - alla ingående adresser måste räknas om. En nackdel med både 'first fit' och 'best fit' är att sökmetoden kan ge långa söktider. I 'best fit' måste hela listan sökas igenom; i 'first fit' i genomsnitt halva. En metod som kan sägas vara en kombination av dem båda och som med bara lite extra overhead visat sig fungera bra är den sk 7... 'Buddy'-metoden Metoden bygger på att segment allokeras i block av olika storlek. Som storlekar kan välas två-potenser av given basstorlek; sk 'binary buddy'. Vare blockstorlek har sin egen fria lista. Vid allokering letas efter fritt block av närmast större storlek: skulle inget sådant ledigt block finnas tillgängligt så söker man i listan över närmast större block. Av dessa lediga block delar man det första blocket i två lika stora delar ('buddies'), allokerar första halvan och överför den andra halvan till fria listan över denna blockstorlek. Vid avallokering återförs den ledigblivna blocket till en fri lista. Om den ledigblivna halvan uppstått genom tidigare delning slås den i hop med sin evevtuellt lediga 'buddy' innan den placeras in i rätt lista. Såväl uppdelningen som ihopslagningen kan gå i flera steg. Initialt betraktas minnet som bestående av ett ledigt block med maximal storlek k. 'Buddy'-metoden allokerar minne enligt fölande mall. procedure get-hole (i); begin if i = k + 1 then 'failure' end if; if empty (i-list) then get-hole (i + 1); split hole; put buddies on i-list; end if; take first hole on i-list end;

3 11 Observera att det vid avallokering kan uppstå en situation i vilken två lika stora och intilliggande block inte är 'buddies'. I så fall ska de naturligtvis inte slås ihop. Givet tillstånd Placera in block med s = 1 Frigör block d Adress N s st Adress N s st Adress N s st a l a' 1 u a' 1 u a'' 1 l a'' 1 l b u b u b u c l osv c l d u d' l e l f u f u g l osv h u i 8 l Status (st): l = ledigt, u = upptaget, s = storlek, N = blocknamn. Adresssen A till läget för en 'buddy' till ett block X är A = adress(x) xor längd(x). (Basadress plus längden). Blocken c och d' är inte 'buddies'. I vare block finns i praktiken också en pekare till nästa block i listan över fria block. Figur 7. visar 'Buddy'-metoden i bildversion. Initialtillstånd Efter det att ett block av storlek ( ) 1 placerats in Efter det att block d frigorts a b Fri lista 1 a' c d e 8 1 c d e c d' f g h h Nästa lediga Storlek a delas uppp i a' och a'' d och e slås ihop till d' Men c och d' slås inte ihop Figur 7. 'Buddy'-metoden Notera att metoden både ger intern och extern minnesfragmentering. Den interna fragmenteringen är för 'binary buddy' 5%; hälften av en blockhalva blir över. Externa fragment kan uppstå eftersom flera lediga "hål" kan summera till tilräcklig storlek utan att för den skull ett segment av mindre storlek än så kan rymmas. För att eliminera den interna fragmenteringen kan blockstorlekar 1,, 3,.., max teoretiskt sett användas. Ett mer realistiskt tillvägagångssätt är att basera metoden på storlekar som uttrycks med Fibonacci-tal (använd k = i nedanstående): f i+1 = f i + f i-k, där f 0 = f 1 = 1. (k = 1 ger 'binary buddy')

4 1 7.3.Utbytesalgoritmer Om minnet är fyllt då ett 'page fault' uppstår måste beslut tas om vilken sida som ska skrivas ut för att bereda plats för en ny. Vi vill naturligtvis väla en utbytesalgoritm som ger så få antal (kommande) sidfel som möligt. Fölande algoritmer är tänkbara. Vi kan väla att invalidera, dvs kasta ut eller bara skriva över 'R(andom)':... en sida slumpmässigt.. FIFO ('first in first out'):... den sida som funnits längst tid i primärminnet. 3. LRU ('least recently used'):... den sida som är minst nyligen använd.. LFU ('least frequently used'):... den sida som använts minst antal gånger. 5. NUR ('not used recently'):... en sida som inte använts under senaste tidsintervallet. 6. B o (Beladys optimala):... den sida vars nästkommande referens ligger längst in i framtiden. 7. 'Working set'- baserade metoder. 'Random' kan ge många onödiga sidfel. Sidor refereras vanligen inte slumpmässigt. FIFO-algoritmen är ganska enkel att implementera, men obsevera att åldriga sidor kan komma att refereras snart igen. Metoden bygger inte på någon som helst information om sidreferensmönstret. Vidare lider algoritmen av en defekt (kallas Beladys anomali): Ett utökat antal sidramar kan ge större sidfelfrekvens. Exempel. Referenssträngen (en sekvens sidnummer) w = , ger 9 sidfel för minnesstorleken 3, men 10 för storleken, om minnet initialt är tomt. Tid w 3 ramar sidfel ramar sidfel kommentar n n <-- se nedan n n n Resultat Σ: 9 Σ: 10 LRU bygger på antagandet om lokalitet: Sidor som nyligen refererats kommer troligen att refereras snart igen. LRU har vid simuleringsexperiment visat ge en mycket bra sidfelfrekvens (relativt den optimala). Tyvärr är den lite dyr att implementera. En tidstämpel på vare sida och en genomgående sökning blir nödvändig. Figur 7.3 illustrerar fenomenet lokalitet.

5 13 Antal referenser under intervallet [t, t + T] Rumslokalitet Virtuell adress Allokeras lämpligen till primärminnet Figuren visar rumslokalitet. Figur 7.3 Lokalitet Den optimala algoritmen kan förstås aldrig implementeras; dock kan den användas vid simuleringsexperiment för att se hur bra andra algoritmer är relativt denna. Man kan införa måtten framåtavstånd d(x) och bakåtavstånd b(x) vid en viss (virtuell) tidpunkt t för en referenssträng w =... r t.... Måttet d(x) anger avståndet (= skillnaden i indexvärden) till den första referensen till x efter tiden t och måttet b(x) skillnaden till den närmast föregående. Den optimala algoritmen (OPT, B 0, MIN) väler den sida som maximerar d och LRU den som maximerar b. Därur föler att F(w, LRU) = F(w r, OPT), där w r är den sträng som erhålls om w reverseras och där F är sidfelfrekvensen. LFU bygger på samma idé som LRU men är inte lättare att implemetera och mycket sämre än LRU. NUR är en lättimplementerad och bra approximation till LRU. NUR-sidor känns igen på att u-biten ('page used') i sidtabellen inte är 1 eller att, om u omfattar fler bitar, antalet referenser är litet. Slutsats: Använd en approximation till LRU. Mängden M av sidor som finns i primärminnet med m sidplatser beror förutom av m på w och utbytesalgoritmen A, dvs vi kan skriva M = M(A, w, m). Definition. En algoritm A som för alla w och m uppfyller M(A, w, m + 1) M(a, w, m) kallas stackalgoritm. En sådan algoritm lider inte av Beladys anomali eftersom fler sidfelsavbrott u inte kan ske om vi utgående från visst M lägger till ytterligare sidor i minnet, dvs F(A, w, m+1) F(A, w, m). LRU är en stackalgoritm eftersom de mest nyligen refererade sidorna inte blir mindre nyligen refererade om ännu fler sidor rymms i minnet. FIFO är däremot ingen stackalgorim vilket tex sekvensen w = med m = 3 och m = visar: M(FIFO,w, 3) = {1,,5} och M(FIFO, w, )= {,3,,5}. Se '<---' i bestämningen av sidfel för FIFO ovan. Sidfelfrekvensen påverkas förstås förutom av utbytesalgoritmen även av minnestorleken. För alla metoder kan man generellt observera att felfrekvensen som funktion av minnesstorleken avtar: Först snabbt, för att vid en mycket karakterisk minnesstorlek övergå till att avta långsamt mot 0 vid en primäminnesstorlek lika med det virtuella minnets. Över en viss minnesstorlek lönar det alltså inte så mycket att installera mer primärminne. Experimentellt har man funnit tumregeln, den sk

6 1 30%-regeln: Vare fördubbling av minnet minskar felfrekvensen med 30%. Figur 7. visar karakteristiska statistiska samband mellan minnesstorlek och sidfelfrekvensen för olika algoritmer. Sidfelfrekvens Om inte lokalitet föreligger Realiserbar algoritm; tex NRU Primärminnesstorlek Optimala algoritmen Storlek av virtuella minnet Figur 7. Sidfel vs minnesstorlek 7.. Hämtregler Två kandidater är 1. 'Fetch on demand'. 'Prefetch'. Alla system bygger (väsentligen) på att ett block läses in först då en 'trap' uppstår på grund av att blocket saknas. Detta kallas 'fetch on demand' eller 'demand fetch'. Att hämta in sidor i förväg skulle kunna minska antalet sidfel. Problemet är att det är omöligt att förutse vilka sidor som kommer att refereras. 'Prefetch' används därför endast då en process startas. Operativsystemet läser in en sekvens sidor för att undvika en skur av sidfel då processen startas Andra aspekter Val av sidstorlek Sidstorleken kan påverka antalet sidfel, men ökning av storleken kan beroende på referenssträngen w både ge ett mindre eller ett större antal sidfel, varför andra överväganden dikterar valet av sidstorlek. Om sidstorleken minskas så ökar kostnaden (utrymmet) för sidtabellerna. Om sidstorleken ökas så ökas den interna fragmenteringen. Givet dessa kostnader finns alltså en optimal sidstorlek: För given medelstorlek s på programmen och sidstorlek z blir kostnaden för sidtabellen per process proportionell mot s/z. Kostanden för intern fragmentering blir proportionell mot z/. Sats. Den toala kostnaden C(z) = As/z + Bz/ minimeras för z = (As/B) 1/. Bevis. Lös ekvationen dc/dz = - As/z + B/ = 0 och beakta att d z/dz = As/z 3 > 0. I praktiken väls alltid sidstorleken lika med storleken av en sektor på skivminnet. Detta för att göra disk-i/o så snabb som möligt. Vanligaste sidstorlekarna ligger mellan 0.5 K och K.

7 'Thrashing' Om vi ökar graden av multiporgrammering kommer det effektiva cpu-utnyttandet i allmänhet att öka. Vid virtuellt minne kan dock hända att vid en viss grad av multiprogrammering det effektiva cpu-utnyttandet blir (nära) 0. Detta kallas 'thrashing' och illustreras i figur 7.5 Reellt cpu-utnyttande 100% Grad av multiprogrammering (antal aktiva processer) Figur 7.5 'Thrashing' Fenomenet beror på att vid ökad grad av multiprogrammering minskar antalet sidor vare process har i primärminnet. Vid viss grad av multiprogrammering rymms inte processernas sk 'working sets' så att alla procsser får en mycket hög sidfelfrekvens. Det betyder att operativsystemet väcks upp ofta (det skapar i sig mer overhead) och att trafiken mot disken ökar. Vid viss trafik mättas kanalen mellan cpu-n och disken varför cpu-väntan blir stor. Då detta upptäcks av processplaneraren ('medium term scheduler') försöker denna öka cpu-utnyttandet genom att aktivera ännu fler processer som i sin tur ökar sidfelfrekvensen etc... 'Catch '. 'Thrashing' kan undvikas genom att se till att innan en process aktiveras en rimlig del ('working set') av dess sidor rymms i primärminnet, alternativt att, givet en viss primärminnesstorlek, sätta en övre gräns för hur många processer som tillåts vara aktiva. Detta är ett beslut som 'medium term scheduler' gör. 'The working set' W(t, T) med parameter T vid tiden t består av de sidor en process refererade under det virtuella tidsintervallet [t - T, t]. T kallas fönsterstorleken. Baserat på detta begrepp har Peter Denning formulerat 'the working set principle': "A process may execute only if its working set is resident in main memory. A page may not be removed if it is in the working set of an executing process." Storleken av W beror naturligtvis, förutom på T, av w. Ett enkelt exempel kan påvisa hur programmeringen kan påverka W. Exempel. Betrakta ett avsnitt vars syfte är att 0-ställa en matris: for i := 1 to n do for := 1 to m do a[i,] := 0.0; end for; end for ; Då radindex varierar snabbast sker, om vare kolonn i matrisen ligger lagrad i en sida, inga sidfel i den inre slingan, men om matrisen ligger lagrad radvis "hoppar" den inre slingan mellan många olika sidor, varvid potentiellt många sidfel uppstår. Olika kompilatorer och arkitekturer representerar matriser olika (rad- eller kolonnvis eller via deskriptorer), men vetskap om vad som sker i vare språk gör det möligt för programmeraren att minska antalet sidfel genom att skriva slingorna 'i rätt ordning' (om det går).

8 16 Visserligen kan det invändas att vitsen med virtuellt minne är att användaren inte ska behöva tänka på "implementeringsdetaler" som tex storleken och organisationen av primärminnet, men å andra sidan: Vem organiserar inte sina ärenden efter närhetsprinciper ('caching', 'locality') i andra sammanhang? Det förtänar att påpekas att referenssträngen w vanligen har större inverkan på antalet sidfel än utbytesalgoritmen. Om sidfelen är för många i ett givet system finns i allmänhet bara två utvägar: 1. Kör andra tillämpningar.. Installera mer primärminne. I distribuerade system saknar ibland arbetsstationerna egen disk. Man förlitar sig på sk 'file servers' på vilka även det finns utrymme för 'page swapping'. 'Thrashing'-problemet blir egentligen större då, eftersom kollisioner på mediet (tex koaxialkabel eller fiberoptik) för det lokala nätet inför ännu mer indeterminism och nätet ofta dessutom är långsammare än en lokal buss mellan cpu och disk. De succesivt minskade priserna på primärminnen kanske skulle förleda en att tro att tekniker för virtuellt minne (snart) skulle bli passé. Tro't den som vill; det lär dröa innan primärminnen om 6 ord blir vanliga och programmerare tendera att snabbt utnytta allt tillgängligt virtuellt minne. År 1969, när ag skrev mitt första program, bestod hela universitetets datorkapacitet av en CD3600 med ett primärminne omfattande 3 K ord (ok då, 8-bitars ord); vi kunde skriva kompakta program då (-;)) 'Cache'-minnen Allmänt 'Cache'-minnen (eller slavminnen), cm, är buffertminnen mellan cpu-er och primärminnet med liten ( en tiondels) accesstid ämfört med primärminnets (pm). De återfinns numera vanligen 'on chip' tillsammans med styrenhet, alu och mmu-er ('memory management units'). Skillnaden mellan ett cm och [en] register[fil] är att de förra laddas maskinvarumässigt och de senare under programkontroll, dvs via maskinkod (move, ump etc) eller via mikrokod. Tanken är att sådana cm ska innehålla de flesta av de instruktioner, data eller deskriptorer/sidtabell- element som processerna ust nu behöver trots att vanligen cm << pm. Förutsättningen för att detta ska vara möligt är precis som vid virtuellt minne att processerna uppvisar lokalitet så att en liten "felfrekvens" f eller hög träff-frekvens h kan erhållas; f + h = 1. Överföringen av information (blockutbytet) mellan cm och pm sker maskinvarumässigt enligt tex en lru-approximation Pris/prestanda Om exempelvis accesstiden till pm är 500 ns, accesstiden till cm 50 ns och h = 0.99 så erhålls en upplevt accesstid på (0.99* *50) ns = 5 ns, vilket är nästan 10 gånger bättre än ett rent pm. Om vi schoblonmässigt räknar med att ett cm är 10 gånger dyrare (per bit) än ett pm och dess storlek är 1/100 därav blir totalkostnaden 110% av det rena primärminnets.

9 17 Precis som vid kopplingen mellan primär- och sekundärminne vid virtuellt minne gäller att f minskar då cm respektive pm ökar (30%-regeln). Notera att tex ett f 0.1 är helt acceptabelt i detta sammanhang, men att en felfrekvens av denna storlek skulle vara helt oacceptabel i fallet virtuellt minne Associativitet För att hålla reda på vilka "ord" av hela adressrymden som för stunden återfinns i cm är det i princip möligt att använda ett arrangemang som påminner om den sidtabell som specificerar vilken del av en virtuell adressrymd som återfinns i pm vid virtuellt minne. Eftersom snabbhet är ett mål i detta samanhang och eftersom omständlig "fel"hantering (via disk) inte behövs så arrangeras det i stället så att cm kompletteras med en associativ del (katalog) som katalogiserar den del som är närvarande i cm. Vid "miss" behövs ingen adressöversättning. Denna katalogprincip är precis densamma som är idén bakom sk 'hash'- tabeller, vilket är en programvaruteknik i vilken ett datums plats i en tabell avgörs utifrån dettas värde. Det finns för övrigt några system, tex IBM S/38 och IBM RISC/6000, som använder en likartad teknik för 'paging'; sk inverterade sidtabeller, där platsen f i tabellen för förekomsten av sidnumret p ger ramindex f för den fysiska adressen. Abstrakt sett kan vi säga att när en adress presenteras för cm så konsulteras denna katalog, som 1. avgör om motsvarande element återfinns i cm,. levererar detta om så är fallet 3. och annars signalerar "miss". I fallet 3. går referensen vidare till pm och sker ett utbyte av ett block mellan cm och pm. 'Cache'minnet kombineras alltså alltid med en acssociativ komponent och vi kan uppfatta minneslementen som par <nyckel, data>, där nyckel = adressen och data = minneslementet i detta sammanhang. Till vare element finns i praktiken en komparator som ämför den till cm inkommande adressen (a) med nyckel-delen (n). Alla minneselement ämförs parallellt och det data där likhet föreligger levereras data ut från cm: träff = i [ a i n i ], där i står för "nor" ('oint denial') över alla bitar (index i) och står för bitvis 'exclusive or'. Jämfört med ett vanligt RAM åtgår ca 50% extra grindar (tex not, or, xor). Både detta förhållande och det att cm använder snabbare logik gör ett cm dyrare än ett vanligt RAM Placeringsmetoder Vid "miss" i cm sker vanligtvis ett blockvist utbyte (fr 'paging'). Sådana block brukar kallas rader, rd, ('lines'). För att illustrera de tre olika metoderna för placering av data i ett cm utgår vi från fölande data. - pm = 1 M, dvs 0 bitars adresss - cm = 16 K, - rd = 16, Primärminnet rymmer alltså 6 K rader och cm rymmer 1 K rader a 16 element.

10 18 Direkt adressering ('direct mapping'). Detta är den enklaste metoden. Rad nummer i i pm placeras på rad nummer i mod 10 i cm. Den reella fysiska adressen kan uppfattas som om den består av tre delar - L = ett 10 bitars radnummer i cm - T = en 6 bitars etikett ('tag') - B = ett bitars elementnummer L adresserar den aktuella raden i cm. T används för att ange vilken av de, här 6, möliga raderna som för närvarande finns i cm. B adresserar linärt och sekventiellt inom raden till rätt element. En nackdel med denna metod är att h blir liten (= 0) om två rader som avbildas till samma plats i cm används omväxlande. Fullständig associativitet. Detta representerar den andra extremen. Vare rad i pm kan placeras på godtyckligt radnummer i cm. Den reella fysiska adressen kan uppfattas som om den består av två delar - T = en 16 bitars etikett - B = ett bitars elementnummer Metoden kan användas för att uppnå högsta möliga h till priset av att det blir det dyraste alternativet (störst associativ del) och att det därför också kan bli långsammast. Vid användning för lagring av delar av sidtabeller brukar denna teknik föredras. Partiell asociativitet ('set associativity', 'congruence mapping'), dvs kompromissen. CM delas in i s mängder (kongruens- eller ekvivalensklasser) vardera med storlek l rader. Om det finns m rader i cm gäller alltså m = l*s. Om vi exempelvis väler l = ('four way set associative cache') så blir i vårt exempel s = 56. En rad kan nu finnas genom att uppfatta den reella fysiska adressen som bestående av tre delar - T = en 8 bitars etikett - S = ett 8 bitars mängdnummer - B = ett bitars elementnummer Aktuell rad återfinns via S-fältet. Rad i i pm placeras i mängd i mod 55 i cm och inom den mängden används en fullständig associativ sökning, som alltså blir "kortare" än i fallet med fullständig associativitet. Figur 7.6 visar en ämförelse mellan de tre metoderna. Observera att om s = 1 så återfås fullständig associativitet. Observera att om l = 1 så återfås direkt adressring. För given storlek m på cm är l*s konstant. Högre associativitet, dvs fler rader per mängd eller färre mänger ger bättre h till högre kostnad. Experimentell erfarenhet talar för mängdstorlekar i intervallet [, 16].

11 19 Till 'cache'minnet Från minnet adresser 'Tag' Data Direkt adressering Fullständig associativitet Partiell associativitet Rad 1 1, 105,... Alla Var 56:e adress avbildas till grupper om 'cache'element fullständigt associativt , 07,... 0, 1,, 3,... Ex. 0, 56,..., 1638 till 'cache'element 0,1, och 3. (i mängd/klass # 0) Ex. 55, 16383, till 'cache'element 100,...,103 (i mängd/klass #55) Figur 7.6. Placering i ett 'cache'minne Exempel. Fölande visar några data ur verkligheten. System m l s Vårt ex M IBM Vax Utbytesmetoder Samma kandidater som vid virtuellt minne är aktuella här. Dock bör påpekas att valet av utbytesalgoritm är avhängigt placeringsmetoden. Dessutom har många experiment givit vid handen att placeringsmetoden har större inverkan på prestanda än utbytesalgoritmen. Notera tex att utbytesalgoritmen blir trivial (inget val) vid direkt adresserat 'cache', medan den är som omständligast vid fullständig associativitet. Experiment har också visat att att för små instruktions-cm och för program med många täta slingor så kan ett direkt adresserat cm utklassa ett fullständigt associativt 'cache' med lrualgoritmen, medan det omvända gäller för stora cm eller program med dålig lokalitet 'Cache' och virtuellt minne Associativa 'cache'minnen används vid virtuellt minne för att lagra delar av sidtabeller och kan också användas för att lagra aktuella instruktioner och data. Vi såg i kapitel 5 hur ett associtativt 'cache' med fullständig associativitet kan användas för adressöversättning. Om vi vill använda 'cache' som en ren "uppsnabbningsteknik" är det möligt att placera cm i det fysiska eller i det virtuella minnet. Om cm ligger i det reella minnet går de virtuella adresserna från cpu-n till minneshanteraren (denna kan alltså i sig innehålla ett cm) där de översätts till fysiska adresser och vidare ut på en buss till cm/pm-kombinationen. I denna implementering avsöks därefter först cm och vid "miss" pm. Eftersom det är möligt att arrangera cm så att sidnumret inte påverkar platsen för elementet kan en effektivare parallell implementering göras. I så fall sker cm-referensen via w- komponenten i den virtuella adressen <p, w> samtidigt/parallellt med det att p-komponenten översätts av mmu-n.

12 130 En annan reflexion: Attraktionen vid införandet av 'cache'minnen såväl som virtuella minnen grundar sig på att hög träff-frekvens erhålls (för alla normala processer). Lokaliteten spelar den centrala rollen. Annorlunda uttryckt kan man säga att programreferenssträngen w innehåller (mycken) redundans; så mycket att framtida referenser låter sig predikteras med hög nogrannhet utgående från förhistorien (fr tex lru-algoritmen) Minnesuppdatering En frågeställning som uppkommer när cm används är huruvida pm omedelbart ska uppdateras då ett cm-element förändras eller e. Om inte kommer uppdateringen att ske först då ett "block" byts ut. Detta tillvägagångssätt, 'copy back', kan förorska problem i system med flera processorer med privata cm som är anslutna till ett "globalt" pm. Exempelvis kan vi tänka oss en situation där två processorer refererar samma adress A i pm. Om processor 1 ändrar c(a) i sitt lokala cm utan att pm-innehållet omdelbart uppdateras så kan processor tätt i anslutning därtill erhålla ett ogiltigt eller gammalt värde ('stale data') vid en läsning. 'Copy back' kan ske ovillkorligt då cm innehållet byts ut eller villkorligt genom att bara ändrade rader ger upphov till uppdatering av primärminnet. Det senare kräver en en sk 'dirty bit'; ämför virtuellt minne. Ett alternativ till 'copy back' är 'write through' som innebär att primärminnet uppdateras omedelbart när 'cache'minnet ändras. Metoden undviker 'stale data' till priset av mer trafik till primärminnet. Allmänt bör tilläggas att flera processorer är bestyckade med två (eller cm); ett för [skrivbara] data (D) och ett för instruktioner (I, som förutsätts inte ändras; fr reentrans). Olika policies för såvål placering som för uppdatering förekommer då vanligen för D- respektive I-'caches' Associativa datorer Under historiens lopp har det gorts försök att bygga datorer där (data)minnet är associativt i stället för som i vanliga datorer sekventiellt adresserbart. Ett exempel på en sådan dator är Goodyear's Staran, ca 197. Det associativa minnet blir som tidagare noterats ca 50% dyrare än ett vanligt minne och tanken med maskinen var att den skulle vara lämplig för speciella tillämpningar i vilka "associativa sökningar" är centrala, tex signalanalys, stavningsrättning och mönsterigenkänning. Komplexiteten för vissa beräkningar kan med ett sådant minne och med lämpliga instruktioner reduceras från ordo(n k ) till ordo(n k-1 ): Linär sökning i ett sekventiell minne tar tid ordo(n), medan motsvarande i ett associativt minne bara kräver ordo(1) 'Interleaving' Grundtanken är att man kan öka minneseffektiviteten genom att använda flera minnesmoduler samtidigt. Vare sådan modul innehåller ett 'memory data register', MDR, och ett 'memory address register, MAR. Dessa register är anslutna till en gemensam buss via vilken kommunikation med processorn sker. Processorn kan därmed ha fler minnesreferenser pågående samtidigt. Detta gör systemet snabbare eftersom minnescyklerna är betydligt större än processorcyklerna. Om systemet innehåller N minnesmoduler M 1,..., M N, så kommer en sekvens konsekutiva referenser a 1 a a 3... att distribueras enligt regeln a i går till M precis då i mod N.

13 131 Detta betyder att i det ideala fallet så kan N referenser pågå parallellt. Om, tex, graden av 'interleaving' är N = n och kapaciteten för vare minnesmodul är m, så ger de m mest signifikanta bitarna α1 i adressen a = <α1, α> en (lokal) modulrelativ adress och de n minst signifikanta bitarna ett modulnummer. Ett "parallellt minne uppstår", men observera att succesiva adresser a måste distribueras ämnt över modulerna för att maximal effekt ska uppstå. Observera också att den vanligen är mycket sämre att vända tolkningen av α1 och α! Programkod och datareferenser utnyttar u ofta sekventiella adresser. Om sådana skulle gå till en och samma minnesmodul vore u inget vunnet. Det finns en del prestandamodeller för minnes-'interleaving'. En grov modell ger approximationen x = Σ 1 k N [(N-1)!k ]/[(N-k)!N k ] (för 1 N 5) N 0.56, (*) där x är medelvärdet av antalet minnesmoduler som refereras samtidigt; bandbredden för minnet. Exempel. Denna approximation säger oss tex att i ett system med N =16 minnesmoduler så är cirka moduler "aktiva" samtidigt. Fölande förutsättninger ger oss mölighet att härleda (*): 1. Minnesmodulernas adresser är 1,,..., N; α1 [1,N] och α är tom.. Adresserna som refereras ligger likformigt fördelade i intervallet [1, N]. 3. Minnessystemet behöver aldrig vänta på referenser.. Tiden att avkoda adressen är försumbar med minnesmodulernas cykeltid. 5. Minnesmodulerna kan inte köa ("buffra") referenser. Under dessa förutsättningar blir sannolikheten att den k:te adressen inte är lika med den första, den andra,... eller den (k-1):te lika med 1 - (k-1)/n och sannolikheten för att den (k+1):te är lika med någon av de tidigare lika med k/n. Detta leder oss till att sannolikheten för exakt k olika referenser i en sträng där den (k+1):te är lika med någon av de tidigare; den sannolikheten är [(N-1)(N-)... (N-k+1)k] / N = [(N-1)! k] / [(N-k)! N k ]. Värdet x utgör medelvärdet av längden på en icke-repeterande sekvens. Anmärkning. D. E. Knuth et al har senare (1975) härlett en bättre approximation för x, nämligen x K πn 0.5 / - 1/3 + "lägre ordningens termer".

14 13 Repetition 1. Virtuellt minne. Placeringsalgoritmer VM (196) för segment Mekanismer Baseras på fri listor 1. Namn- och adressrum 1. 'first fit'. Namn- till adressbindning. 'best fit' 'Policies 3. 'worst fit' 3. Algoritmer för. 'buddy' a. segmentplacering b. utbyte c. hämtning 3. Utbuytesalgoritmer. Hämtalgoritmer 1. 'Random' 1. 'fetch on demand'. FIFO. 'prefetch' (anomalin) 3. LRU 5. Parametrar (Stackalgoritm) 1. Sidstorlek. LFU. Sidoreferensmönster 5. NRU 3. 'Thrashing' 6. OPT. 'Working sets' 7. WS 6. 'Caches' 7. 'Interleaving' 1. Direkt adresserat πn 0.5 /. Fullständigt associativt 3. Partiellt associativt

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

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ö 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

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

Operative system. LRU-algoritm (2 p) Svar: 7 fel. c) Optimal algoritm (2 p) Svar: 6 fel

Operative system. LRU-algoritm (2 p) Svar: 7 fel. c) Optimal algoritm (2 p) Svar: 6 fel Uppgift 3 Till en process som kräver 8 sidor allokeras 4 sidoramar. Antag följande referenssträng: 1,2,8,3,4,3,8,2,1,4 Hur många sidofel kommer att genereras (demand paging) med en a) FIFO-algoritm (2

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

Minneshantering segmentering och virtuellminne. Föreläsning 3

Minneshantering segmentering och virtuellminne. Föreläsning 3 Minneshantering segmentering och virtuellminne Föreläsning 3 Minneshantering forts. Hur kan man köra processer som är större än primärminnet? Hur kan man undvika att stack och heap växer ihop? Virtuellminne

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

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

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

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

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

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

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

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

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

Närliggande allokering Datorteknik

Närliggande allokering Datorteknik Närliggande allokering Datorteknik ERIK LARSSON TID Problem: Minnet blir fragmenterat Paging Demand paging Sida (S) Dela upp primärminnet i ramar (frames) och program i sidor (pages) Program 0 RD.0 1 RD.1

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

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

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

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

CE_O8. Cacheminne. Hemlaboration 2.

CE_O8. Cacheminne. Hemlaboration 2. IS1200 Lösningsförslag till övning CE_O8, 2015 CE_O8. Cacheminne. Hemlaboration 2. 8.1. Medeltidshistoria Diskutera förloppet då CPU:n gör en läsreferens i huvudminnet dvs information kopieras från huvudminne

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

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

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

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

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

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

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

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

Operativsystem (IS1350) :00-12:00

Operativsystem (IS1350) :00-12:00 Operativsystem (IS1350) 2017-03-15 08:00-12:00 Namn: Instruktioner Betyg Du får endast ha med dig skrivmateriel. Mobiler etc skall lämnas till tentamensvakterna. Svaren skall lämnas på dessa sidor, använd

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

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

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

Hjälpmedel: Inga hjälpmedel förutom penna, suddgummi och glatt humör.

Hjälpmedel: Inga hjälpmedel förutom penna, suddgummi och glatt humör. Tentamen Inst. för Informationsteknologi Avdelningen för Datorteknik Herbert P Sander Tel: 070 376 06 87 Ämne: Operativsystem Lokal: Post Scriptum, sal 2 Datum: Måndagen den 13 maj 2002 Tid: Kl 09.00-14.00

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

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

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

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

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

Pipelining i Intel Pentium II

Pipelining i Intel Pentium II Pipelining i Intel Pentium II John Abdulnoor Lund Universitet 04/12/2017 Abstract För att en processor ska fungera måste alla komponenter inuti den samarbeta för att nå en acceptabel nivå av prestanda.

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

Operativsystem ID2206 Tentamen TEN1 4.5 hp :00-18:00

Operativsystem ID2206 Tentamen TEN1 4.5 hp :00-18:00 Operativsystem ID2206 Tentamen TEN1 4.5 hp 2018-04-03 14:00-18:00 Instruktioner Du får, förutom skrivmateriel, endast ha med dig en egenhändigt handskriven A4 med anteckningar. Svaren skall lämnas på dessa

Läs mer

Flera processer. Minneshantering. Trashing kan uppstå ändå. Ersätta globalt

Flera processer. Minneshantering. Trashing kan uppstå ändå. Ersätta globalt Flera processer Minneshantering Operativsystem lektion 6 Potentiellt problem: Den sida som plockas bort behöver inte vara den sida som används minst!! Det kan finnas andra processer som inte körs eller

Läs mer

Dugga 1 status 41 godkända 39 ej godkända ERIK LARSSON

Dugga 1 status 41 godkända 39 ej godkända ERIK LARSSON Datorteknik Dugga 1 status 41 godkända 39 ej godkända ERIK LARSSON e.g. Harvard or Boston Home About Rankings Survey Universities GRUP Initiative Conference Study in China Advertise with Us Home>> Global

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

Operativsystem (ID2200/06) XX XX:00-XX:00

Operativsystem (ID2200/06) XX XX:00-XX:00 Operativsystem (ID2200/06) 2017-01-XX XX:00-XX:00 Namn: Instruktioner Du får, förutom skrivmateriel, endast ha med dig en egenhändigt handskriven A4-sida med anteckningar. Mobiler etc skall lämnas till

Läs mer

Datorsystem. Laboration 3: Operativsystem Senast uppdaterad: 14 oktober 2012 Version 1.3. Student: Underskrift: Underskrift: Datum:

Datorsystem. Laboration 3: Operativsystem Senast uppdaterad: 14 oktober 2012 Version 1.3. Student: Underskrift: Underskrift: Datum: Datorsystem Laboration 3: Operativsystem Senast uppdaterad: 14 oktober 2012 Version 1.3 Student: Lärare: Underskrift: Underskrift: Datum: Datorsystem Laboration 3 1 Innehåll 1 Inledning 2 1.1 Introduktion...........................................

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

Cache-koherens protokoll MESI och MOSI

Cache-koherens protokoll MESI och MOSI Handledare: Erik Larsson Lunds Tekniska Högskola HT2016 Cache-koherens protokoll MESI och MOSI Författare: Adnan Mohamed Abstrakt Cache koherens protokoll hanterar cacheminnet i ett multiprocessor system,

Läs mer

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #14 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Vad vi har åstadkommit hittills: Med hjälp av kombinatoriska

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

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

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

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

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

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

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

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 PC-teknik 5 p Lösningar och kommentarer

Tentamen PC-teknik 5 p Lösningar och kommentarer Tentamen PC-teknik 5 p Lösningar och kommentarer Program: Di2, Em3, Et3 Datum: 04-08-10 Tid: 13:30-18:30 Lokal E171 Hjälpmedel: Linjal, miniräknare, Instruktionsrepertoar för 8086 (utdelas), Lathund, Pacific

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

Operativsystem ID2200 Tentamen TEN1 3.8 hp :00-18:00

Operativsystem ID2200 Tentamen TEN1 3.8 hp :00-18:00 Operativsystem ID2200 Tentamen TEN1 3.8 hp 2018-04-03 14:00-18:00 Instruktioner Du får, förutom skrivmateriel, endast ha med dig en egenhändigt handskriven A4 med anteckningar. Svaren skall lämnas på dessa

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

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

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

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

Databaser - Design och programmering. Minnesteknik. Minnesteknik, forts. Hårddisk. Primärminne (kretsteknik) Fysisk design av databasen

Databaser - Design och programmering. Minnesteknik. Minnesteknik, forts. Hårddisk. Primärminne (kretsteknik) Fysisk design av databasen Databaser Design och programmering Fysisk design av databasen att ta hänsyn till implementationsaspekter minnesteknik filstrukturer indexering Minnesteknik Primärminne (kretsteknik) Flyktigt Snabbt Dyrt

Läs mer

Datormodell. Datorns uppgifter -Utföra program (instruktioner) Göra beräkningar på data Flytta data Interagera med omvärlden

Datormodell. Datorns uppgifter -Utföra program (instruktioner) Göra beräkningar på data Flytta data Interagera med omvärlden Datormodell Datorns uppgifter -Utföra program (instruktioner) Göra beräkningar på data Flytta data Interagera med omvärlden Intel 4004 från 1971 Maximum clock speed is 740 khz Separate program and data

Läs mer

Databaser Design och programmering Minnesteknik Minnesteknik, forts Utvecklingen Hårddisk Hårddisk, forts

Databaser Design och programmering Minnesteknik Minnesteknik, forts Utvecklingen Hårddisk Hårddisk, forts Databaser Design och programmering Fysisk design av databasen att ta hänsyn till implementationsaspekter minnesteknik filstrukturer indexering 1 Minnesteknik Primärminne (kretsteknik) Flyktigt Snabbt Dyrt

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

Ö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

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

MESI-Protokollet. Richard Elvhammar. Lund Universitet 4/12-16

MESI-Protokollet. Richard Elvhammar. Lund Universitet 4/12-16 MESI-Protokollet Richard Elvhammar Lund Universitet 4/12-16 Abstract För att ett system snabbt ska kunna hantera information så används, å sidan åt primärminnet och sekundärminnet, ett cacheminne. I modern

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

Datorarkitektur. Informationsteknologi sommarkurs 5p, Agenda. Slideset 3

Datorarkitektur. Informationsteknologi sommarkurs 5p, Agenda. Slideset 3 Informationsteknologi sommarkurs 5p, 2004 Mattias Wiggberg Dept. of Information Technology Box 337 SE751 05 Uppsala +46 18471 31 76 Collaboration Jakob Carlström Datorarkitektur Slideset 3 Agenda Datorns

Läs mer

Cacheminne Intel Core i7

Cacheminne Intel Core i7 EDT621 Datorarkitekturer med operativsystem 7,5 hp 2015-12-07 Cacheminne i Intel Core i7 Författare: Adnan Karahmetovic Handledare: Erik Larsson Innehåll 1. Inledning... 1 1.1 Syfte... 1 1.2 Frågeställning...

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

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

CDC en jämförelse mellan superskalära processorer. EDT621 Campus Helsingborg av: Marcus Karlsson IDA

CDC en jämförelse mellan superskalära processorer. EDT621 Campus Helsingborg av: Marcus Karlsson IDA CDC6600 - en jämförelse mellan superskalära processorer av: Marcus Karlsson Sammanfattning I denna rapport visas konkret information om hur den första superskalära processorn såg ut och hur den använde

Läs mer

Tentamen i ID2206, ID2200 samt IS1350 Operativsystem

Tentamen i ID2206, ID2200 samt IS1350 Operativsystem Tentamen i ID2206, ID2200 samt IS1350 Operativsystem Tisdagen 2014-03-18 kl 09:00-13:00 Examinator: ID2206, ID2200 Robert Rönngren, IS1350 Jim Dowling Hjälpmedel: Inga Tentamensfrågorna behöver inte återlämnas

Läs mer

6. Ge korta beskrivningar av följande begrepp a) texteditor b) kompilator c) länkare d) interpretator e) korskompilator f) formatterare ( pretty-print

6. Ge korta beskrivningar av följande begrepp a) texteditor b) kompilator c) länkare d) interpretator e) korskompilator f) formatterare ( pretty-print Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Exempel på tentafrågor på boken Lunell: Datalogi-begreppen och tekniken Obs! Andra frågor än dessa kan komma på tentan! 1. Konvertera talet 186 till

Läs mer

Föreläsning 3.1: Datastrukturer, en översikt

Föreläsning 3.1: Datastrukturer, en översikt Föreläsning.: Datastrukturer, en översikt Hittills har vi i kursen lagt mycket fokus på algoritmiskt tänkande. Vi har inte egentligen ägna så mycket uppmärksamhet åt det andra som datorprogram också består,

Läs mer

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #21 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Teknologier och hierarkier Minnestyper Vi har hittills

Läs mer

Datorarkitekturer med operativsystem ERIK LARSSON

Datorarkitekturer med operativsystem ERIK LARSSON Datorarkitekturer med operativsystem ERIK LARSSON Pipelining Tid SSA P Pipelining FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO Superscalar pipelining FI DI CO FO EI WO FI DI

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

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #21 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Teknologier och hierarkier Minnestyper Vi har hittills

Läs mer

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

Föreläsning 1: Intro till kursen och programmering Föreläsning 1: Intro till kursen och programmering λ Kursens hemsida http:www.it.uu.se/edu/course/homepage/prog1/mafykht11/ λ Studentportalen http://www.studentportalen.uu.se UNIX-konton (systemansvariga

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

Digitalteknik EIT020. Lecture 15: Design av digitala kretsar

Digitalteknik EIT020. Lecture 15: Design av digitala kretsar Digitalteknik EIT020 Lecture 15: Design av digitala kretsar November 3, 2014 Digitalteknikens kopplingar mot andra områden Mjukvara Hårdvara Datorteknik Kretskonstruktion Digitalteknik Elektronik Figure:,

Läs mer

Dagens OS. Unix, Linux och Windows. Unix. Unix. En översikt av dagens OS Titt på hur de gör. Många varianter Mycket gemensamt. En del som skiljer

Dagens OS. Unix, Linux och Windows. Unix. Unix. En översikt av dagens OS Titt på hur de gör. Många varianter Mycket gemensamt. En del som skiljer Dagens OS En översikt av dagens OS Titt på hur de gör Unix, Linux och Windows Unix Många varianter Mycket gemensamt Unix En del som skiljer Vanliga program, shell, etc System calls Interupts and traps

Läs mer

Sökning. Översikt. Binärt sökträd. Linjär sökning. Binär sökning. Sorterad array. Linjär sökning. Binär sökning Hashtabeller

Sökning. Översikt. Binärt sökträd. Linjär sökning. Binär sökning. Sorterad array. Linjär sökning. Binär sökning Hashtabeller Översikt Linjär sökning Sökning Binär sökning Hashtabeller Programmering tillämpningar och datastrukturer 2 Linjär sökning Binärt sökträd Undersök ett element i taget tills du hittar det sökta Komplexitet

Läs mer

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

c a OP b Digitalteknik och Datorarkitektur 5hp ALU Design Principle 1 - Simplicity favors regularity add $15, $8, $11 A basic -bit Select between various operations: OR, AND, XOR, and addition Full Adder Multiplexer Digitalteknik och Datorarkitektur hp Föreläsning : introduktion till MIPS-assembler - april 8 karlmarklund@ituuse

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

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

PC-teknik, 5 p LABORATION ASSEMBLERINTRODUKTION

PC-teknik, 5 p LABORATION ASSEMBLERINTRODUKTION PC-teknik, 5 p LABORATION ASSEMBLERINTRODUKTION Laborationsansvarig: Anders Arvidsson Utskriftsdatum: 2005-08-31 Laborant(er): 1 Syfte Laborationen ska ge studenten möjlighet att genom assemblerinlägg

Läs mer

Databaser Design och programmering. Fysisk design av databasen att ta hänsyn till implementationsaspekter: minnesteknik filstrukturer indexering

Databaser Design och programmering. Fysisk design av databasen att ta hänsyn till implementationsaspekter: minnesteknik filstrukturer indexering Databaser Design och programmering Fysisk design av databasen att ta hänsyn till implementationsaspekter: minnesteknik filstrukturer indexering 2 Programdesign, databasdesign Databasdesign Kravspecifikation

Läs mer

F5: Högnivåprogrammering

F5: Högnivåprogrammering 1 F5: Högnivåprogrammering Parameteröverföring Koppling mellan låg- och högnivåprogrammering Lokala variabler Heapen Datatyper 1 Subrutin, parameteröverföring: 1(3) Via register genom värde Skicka data

Läs mer

Lunds Tekniska Högskola Datorarkitektur med operativsystem EITF60. Superscalar vs VLIW. Cornelia Kloth IDA2. Inlämningsdatum:

Lunds Tekniska Högskola Datorarkitektur med operativsystem EITF60. Superscalar vs VLIW. Cornelia Kloth IDA2. Inlämningsdatum: Lunds Tekniska Högskola Datorarkitektur med operativsystem EITF60 Superscalar vs VLIW Cornelia Kloth IDA2 Inlämningsdatum: 2018-12-05 Abstract Rapporten handlar om två tekniker inom multiple issue processorer

Läs mer

Shannon-Fano-Elias-kodning

Shannon-Fano-Elias-kodning Datakompression fö 5 p.1 Shannon-Fano-Elias-kodning Antag att vi har en minnesfri källa X i som tar värden i {1, 2,...,L}. Antag att sannolikheterna för alla symboler är strikt positiva: p(i) > 0, i. Fördelningsfunktionen

Läs mer

Minneshantering - grunderna. Föreläsning 2

Minneshantering - grunderna. Föreläsning 2 Minneshantering - grunderna Föreläsning 2 Minneshantering Hur hantera grundfallet med endast en process? Hur kan flera processer vara aktiva, dvs vara i minnet, samtidigt? Adressrymden Kontinuerlig allokering

Läs mer