Innhold. Introduksjon til parallelle datamaskiner. Ulike typer parallelle arkitekturer. Prinsipper for synkronisering av felles hukommelse

Like dokumenter
4/5 store parallelle maskiner /4 felles hukommelse in 147, våren 1999 parallelle datamaskiner 1. når tema pensum.

INF2270. Omid Mirmotahari SUPERSCALAR CPUs

Dagens temaer. Kort repetisjon. Mer om cache (1) Mer om cache (2) Read hit. Read miss. Write hit. Hurtig minne. Cache

Dagens tema. Flere teknikker for å øke hastigheten

Cache (repetisjon) Cache (repetisjon) Cache (repetisjon) Dagens temaer. CPU Cache RAM. om cache-hukommelse (kapittel 6.5 i Computer Organisation

bruksområder og oppbygging om cache-hukommelse (kapittel 6.5 i Computer Organisation Dagens temaer and Architecture ) ROM RAM

Dagens temaer. Cache (repetisjon) Cache (repetisjon) Cache (repetisjon)

IN1020. Minnehierarki

Dagens temaer. Mer om cache-hukommelse (kapittel 6.5 i Computer Organisation and Architecture ) RAM ROM. Hukommelsesbusser

Oppsummering av digitalteknikkdelen

Oppgave 1 JK-flip-flop (Total vekt 20%)

INF2270. Minnehierarki

Dagens temaer. Dagens emner er hentet fra Englander kapittel 11 (side ) Repetisjon av viktige emner i CPU-design.

Oppsummering digital-teknikk, teknikk, INF2270

Plan. Oppgaver og repetisjon Eksempler med fikspunkt og induksjon: 1. sortering 2. divisjon 3. Heis? IN 315: Foilsett 9: Unity: Arkitekturer

Dagens temaer. Fra kapittel 4 i Computer Organisation and Architecture. Kort om hurtigminne (RAM) Organisering av CPU: von Neuman-modellen

IN1020. Datamaskinarkitektur

Skisse til løsning for eksamensoppgave i TDT4186 Operativsystemer

Innhold. Oversikt over hukommelseshierakiet. Ulike typer minne. Innledning til cache. Konstruksjon av cache Hukommelseshierarki-1 1

Oppgave 2 Maskinkode (vekt 12%)

! Ytelsen til I/O- systemer avhenger av flere faktorer: ! De to viktigste parametrene for ytelse til I/O er:

Hvorfor lære om maskinvare*?

INF2270. Input / Output (I/O)

Vi anbefaler at du setter deg litt inn i maskinen på forhånd. Det er en DELL Optiplex 620.

INF2270. Input / Output (I/O)

Forelesning Hurtigbuffer Kap 4.5

Intel Core i7. Omid Mirmotahari 4

Hukommelseshierarki. 16/3 cache /3 virtuell hukommelse in 147, våren 1999 hukommelseshierarki 1

Minnehåndtering i operativsystemer

Minnehåndtering i operativsystemer

alternativer til felles hukommelse store parallelle datamaskiner Tema for denne forelesningen: in 147, våren 1999 parallelle datamaskiner 1 9

Innhold. Innledning til Input/Output. Ulike typer Input/Output. Input/Output internt i datamaskinen. Input/Output mellom datamaskiner

GetMutex(lock) { while(testandset(lock)) {} } En context switch kan ikke ødelegge siden testen og endringen av lock skjer i samme instruksjon.

Innhold. Virtuelt minne. Paging i mer detalj. Felles rammeverk for hukommelseshierarki Hukommelseshierarki-2 1

Input/Output. når tema pensum. 13/4 busser, sammenkobling av maskiner /4 PIO, DMA, avbrudd/polling

Løsningsforslag til eksamen i IN147(A)

Introduksjon til kurset og dets innhold

Dagems temaer. kapittel 4 i Computer Organisation and Architecture. av CPU: von Neuman-modellen. Transfer Language (RTL) om hurtigminne (RAM)

DBMS Database Management System (repetisjon) Programmeringsgrensesnitt. Serialiserbarhet

INF3140 Modeller for parallellitet INF3140/4140: Låser og Barrierer

Dagems temaer INF ! Fra kapittel 4 i Computer Organisation and Architecture. ! Kort om hurtigminne (RAM)

UNIVERSITETET I OSLO

hvor mye hurtigminne (RAM) CPU en kan nyttiggjøre seg av. mens bit ene betraktet under ett kalles vanligvis et ord.

INF1010 Tråder II 6. april 2016

! Sentrale begreper er adresserbarhet og adresserom. ! Adresserbarhet: Antall bit som prosessoren kan tak samtidig i én operasjon

TDT4160 AUGUST, 2008, 09:00 13:00

INF2270 I/O. Omid Mirmotahari Omid Mirmotahari 1

TDT4110 IT Grunnkurs Høst 2015

Tråder Repetisjon. 9. og 13. mai Tråder

D: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt.

Concurrency. Lars Vidar Magnusson. September 20, Lars Vidar Magnusson () Forelesning i Operativsystemer September 20, / 17

INF3100 V2018 Obligatorisk oppgave nr. 2

Litt om Javas class-filer og byte-kode

kan adressere et større område som RAM enn det som faktisk er tilgjengelig. Siden data kan plasseres i RAM og/eller på harddisken brukes begrepet

Datamaskinens oppbygning

Oppgave 1 Oversettelse (total vekt 20%)

Seksjon 1. INF2270-V16 Forside. Eksamen INF2270. Dato 1. juni 2016 Tid Alle trykte og skrevne hjelpemidler, og en kalkulator, er tillatt.

Lars Vidar Magnusson. October 11, Lars Vidar Magnusson () Forelesning i Operativsystemer October 11, / 28

Transaksjoner. transaksjon. når starter/slutter 1 trans.?

Løsningsforslag til eksamen i INF2270

2. Hvor mye Internminne har den? Svar: 2GB

TDT4258 Eksamen vår 2013

Intel Core i7. Omid Mirmotahari 4

Martin Olsen, Lars- Petter Ahlsen og Jon- Håkon Rabben

IN1010 våren Repetisjon av tråder. 15. mai 2018

Internminnet. Håkon Tolsby Håkon Tolsby

Internminnet. Håkon Tolsby Håkon Tolsby

Oppgave 8.1 fra COD2e

IT1101 Informatikk basisfag, dobbeltime 18/9. Kommunikasjon med perifere enheter. Kontrollere. Kontrollere (2) I/O-instruksjoner

Eksamensoppgave i TDT4258 Energieffektive Datamaskinsystemer

Prøveeksamen INF2440 v Arne Maus PSE, Inst. for informatikk

Datamaskinens oppbygning og virkemåte

UNIVERSITETET I OSLO

Oppgave 2: Gå til roten (/) av systemet. Finn minst tre forskjellige måter å gå tilbake til hjemmekatalogen din på.

UNIVERSITETET I OSLO

AVSLUTTENDE EKSAMEN I. TDT4160 Datamaskiner Grunnkurs. Torsdag 29. November 2007 Kl

Oversikt. Historie Struktur Moderne UNIX systemer Moderne UNIX kernel struktur 1 UNIX. 2 Linux. 3 Process. 4 Process models

UNIVERSITETET I OSLO

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Fakultet for informasjonsteknologi, Løsning på kontinuasjonseksamen i TDT4190 / SIF8042 Distribuerte systemer August 2005,

Innhold. 2 Kompilatorer. 3 Datamaskiner og tallsystemer. 4 Oppsummering. 1 Skjerm (monitor) 2 Hovedkort (motherboard) 3 Prosessor (CPU)

dynamiske data dynamiske data statiske data program dynamiske data statiske data reservert program dynamiske data statiske data reservert program

Eksamensoppgave i TDT4258 Energieffektive datamaskinsystemer

Maskinvaredelen av INF 103: oversikt og innhold (1)

NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse

Dagens tema. Mer om cache-hukommelse Kapittel 6.5 i Computer Organisation and Architecture ) RAM. Typer, bruksområder og oppbygging 2008 ROM

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

ytelsen til hukommelseshierarkier

Oppgave lab. 2. Hvor mye Internminne har den? - Maskinen har 2GB internminne.

EKSAMENSOPPGAVE I FAG TDT4186 OPERATIVSYSTEMER. Faglig kontakt under eksamen: Svein Erik Bratsberg og Arvid Staupe

Dagens temaer. Virtuell hukommelse. Sidetabell. Virtuell hukommelse (forts.)

Øving 5: Transaksjonshåndtering, logging og normalisering

Digital logic level: Oppsummering

Oppgave 1 Flervalgsspørsmål ( multiple choice ) 15 %

Definisjon av prosess

Dagens temaer. Virtuell hukommelse (kapittel 9.9 i læreboken) Pentium-arkitekturen i mer detalj INF 1070

INF3140 Modeller for parallellitet INF3140/4140: Programanalyse

DBS21 Samtidighetskontrollteknikker

Forelesning ISA-nivået Kap 5.1

DBS22 Databasegjenopprettingsteknikker

Transkript:

Innhold Introduksjon til parallelle datamaskiner. Ulike typer parallelle arkitekturer Prinsipper for synkronisering av felles hukommelse Multiprosessorer koblet sammen av én buss 02.05 2001 Parallelle datamaskiner 1

Parallelle datamaskiner Ønsker å øke eksekveringshastigheten til programmer man eksekverer på en maskin. Ideelt sett ønsker man: Hvis 1 prosessor bruker tid n på program X, skal m prosessorer bruker tiden n/m på å kjøre X. I praksis er dette ikke mulig av flere årsaker: Visse deler av et program er sekvensielle. Det finnes innbyrdes avhengigheter som gjør at visse deler av programmet må vente på andre deler. Det finnes problemer som ikke lar seg parallellisere. 02.05 2001 Parallelle datamaskiner 2

For at et program skal eksekveres (helt eller delvis) i parallell, må det stilles krav til både programmeringsverktøy og maskinvare: Programmet må skrives i et programmeringsspråk som støtter parallellitet. Operativsystemet må støtte ekte parallell eksekvering. Det bør finnes verktøy for å parallellisere et program (eller det må gjøres manuelt) Maskinvaren må inneholde minst to prosessorer, og mekanismer som gjør at de kan kommunisere sammen og synkronisere eksekveringen. 02.05 2001 Parallelle datamaskiner 3

Det er vanlig å klassifisere datamaskiner utifra følgende kriterier: Single Instruction Stream, Single Data Stream (SISD) Single Instruction Stream, Multiple Data Streams (SIMD) Multiple Instruction Streams, Single Data Stream (MISD) Multiple Instruction Streams, Multiple Data Streams (MIMD) Vanlig å betrakte kun MISD og MIMD som multiprosessorer. 02.05 2001 Parallelle datamaskiner 4

Prosessorene må kommunisere hvis de aksesserer samme minne. Eksempel: Billettreservasjon A F (Felles Billett database) B A: Er billett X ledig? B: Er billett X ledig? F: Ja, X ledig A: Reserver billett X B: Reserver billett X F: Reservet billett X for. 02.05 2001 Parallelle datamaskiner 5

For å kontrollere data-aksess finnes to teknikker for synkronisering: Låsing Låsing. Meldingsutveksling. Kun en prosessor har tilgang til en variabel eller et dataområde ad gangen. En prosessor som ønsker å aksessere en variabel, sjekker først om låse-bit et er satt. Hvis låse-bit et ikke er satt, setter prosessoren bit et, og aksesserer variabelen. Hvis låse-bit et er satt, betyr det at en annen prosessor bruker variabelen og den kan ikke aksesseres. Prosessoren som setter låse-bit et må frigi det ( låse opp ) når variabelen ikke lenger brukes. Lese-låse operasjonen må være atomisk 02.05 2001 Parallelle datamaskiner 6

Meldingsutveksling Prosessor A Prosessor B Kø Delt minne Operasjoner for å lese fra og skrive til meldingskøen må beskyttes som ved delt minne Meldingsutveksling må brukes hvis parallelle prosessorer har private minneområder. Støtter multiprosessornettverk 02.05 2001 Parallelle datamaskiner 7

Sammekobling av multiprosessorer En enkelt buss Cache Cache Cache Single bus Memory I/O Via nettverk Cache Cache Cache Memory Memory Memory Network 02.05 2001 Parallelle datamaskiner 8

Én-buss systemer har flere fordeler: Enkelt-prosessorer er mindre enn en integrert multiprosessor. Cache kan redusere trafikken på systembussen. Det finnes mekanismer for å holde minne og cache konsistene i multiprosessor-omgivelser. Cache-koherens må garanteres i multiprosessor-systemer: Problem: Fordi flere prosessorer kan oppdatere samme variabel, finnes det tidsrom hvor lokal cache er oppdatert, men hovedminnet ennå ikke er oppdatert (jfr billett-reservasjon). Hva skjer hvis en annen prosessor leser hovedminnet i dette tidsrommet? 02.05 2001 Parallelle datamaskiner 9

Cache-koherens protokoller brukes for å sikre at innhold i lokale cacher og hovedminnet samsvarer. Snooping er den mest vanlige teknikken: Lesing: Intet problem med flere kopier. Skriving: Kun en prosessor får skrive, og alle andre kopier i lokale cacher må oppdateres. Snooping-protokollen holder styr cacher som inneholder et objekt som skal skrives til. Ved read miss sjekkes alle lokale cacher og oppdaterer cachen som fikk read miss. Ved write miss må alle cacher som inneholder kopi av objektet som ga write miss oppdateres. 02.05 2001 Parallelle datamaskiner 10

Kopier som er feil etter skriveoperasjon kan merkes som ugyldige ( write-invalidate ), eller oppdateres med en gang ( write-update ) Write-invalidate Info om ugyldig blokk sendes ut på bussen. Prosessorer som har kopier av disse i lokal cache merker disse som ugyldige. Prosessoren som skrev oppdaterer deretter sin egen cache. De andre cachene må selv sørge for å oppdatere seg selv ved behov (lesing eller skriving vil alltid gi cache miss ) Tillater at mange kan lese, men kun en prosessor kan skrive ad gangen. 02.05 2001 Parallelle datamaskiner 11

Write-update Den oppdaterte verdien sendes ut på bussen. Prosessorer som har kopier av disse i lokal cache skriver inn den nye verdien. Tilsvarer write-through ved SISD-arkitektur Bruker bussen oftere Oppdaterte verdier blir raskere tilgjengelig i andre lokale cacher Snoop tag Cache tag and data Snoop tag Cache tag and data Snoop tag Cache tag and data Single bus Memory I/O 02.05 2001 Parallelle datamaskiner 12

Eksempel på cache-koherens protokoll: Basert på write-invalidate som er mest vanlig (reduserer busstrafikken) Hver cache-blokk er i en av tre tilstander: 1) Read Only: Blokken har ikke blitt skrevet til og kan deles direkte. 2) Read/Write: Blokken har blitt skrevet til og kan ikke deles direkte 3) Invalid: Blokken inneholder ikke gyldige data. Signaler som styrer cache-koherens protokollen for en blokk i en lokal cache kommer både fra prosessoren og bussen: Fra prosessoren: Write hit Write miss Read miss Fra bussen Read miss eller write miss fra en annen prosessor Invalidate fra en annen prosessor 02.05 2001 Parallelle datamaskiner 13

Invalid (not valid cache block) read miss Read Only (clean) write miss Proce ssor read miss if (Write back dirty block to memory) (Send invalidate hit) Proce ssor write (hit or miss) Read/ Write (dirty) Signaler fra prosessoren write Another pro cessor h as a read miss o r a write miss fo r this blo ck (seen o n bus); write b ack old blo ck Invalid (not valid ca che bloc k) Invalid ate o r a noth er pro ce ssor ha s a write mis s for this blo ck (seen o n b us) Read Only (cle an) Rea d/ Write (dirty) Signaler fra bussen 02.05 2001 Parallelle datamaskiner 14

Bruk av koherensprotokoll for synkronisering. Benytter lock variabel for å synkronisere eksekveringen av parallelle prosesser som arbeider på et felles problem. Lock = 0: Variabelen kan benyttes Lock = 1: Variabelen er opptatt Hvis lock -variabel er opptatt, må prosessorer som ønsker å gå videre vente til variabelen er ledig. Bussen må ha en atomisk les-og-sett operasjon for lock -variable. Prosessorer som ser at lock er låst, går i løkke og tester verdien helt til den låses opp. Hver prosessor kan ha en lokal kopi av lock - variabelen ved buss-basert koherens protokoll. Når lock -variabelen frigjøres, vil det forårsake write-invalidate eller write-update 02.05 2001 Parallelle datamaskiner 15

Flytskjema for koherens-basert synkronisering Load lock variable No Unlocked? (= 0?) Yes Try to lock variable using swap: read lock variable and then set variable to locked value (1) No Succeed? (= 0?) Yes Begin update of shared data Finish update of shared data Unlock: set lock variable to 0 02.05 2001 Parallelle datamaskiner 16