T12.2 Multiprosessorer Flashcards
⭐️ Flerkjerneprosessor
Dersom det er en prosessorbrikke i en multiprosessor
⭐️ Multiprosessorer
Dersom det er mer enn en prosessorbrikke i en multiprosessor
⭐️ Delt minne (Shared Memory Multiprocessor (SMP))
Dersom prosessorene deler det fysiske minnerommet
Uniform memory access (UMA)
En multiprosessor der hvor forsinkelsen for et ord i hovedminnet er ca. det samme uansett hvor mange og hvilke prosessorer som ber om tilgang
Nonuniform memory access (NUMA)
En multiprosessor der hvor noen minneaksesseringer er mye raskere en andre avhengig av hvilken prosessor som ber om hvilket ord
⭐️ Distribuert minne (Distributed memory multiprocessor)
Dersom prosessorene ikke deler det fysiske minnerommet
⭐️ Hva er styrkene med multiprosessorer med delt minne?
Enkel programmering: Siden alle prosessorer har tilgang til en felles minneplass.
Rask kommunikasjon mellom prosessorene
Skalerbarhet: Ved å legge til flere prosessorer
Ressursdeling: Prosessorene kan dele ressurser som data og programmer
⭐️ Hva er styrkene med multiprosessorer med distribuert minne?
Skalerbarhet: Hver prosessor har sitt eget minne, noe som gjør det enklere å skalere systemet ved å legge til flere prosessorer uten å bekymre seg for minneflaskehalser.
Redusert minnekonflikt: Siden hver prosessor har sitt eget minne, reduseres risikoen for minnekonflikter og flaskehalser som kan oppstå i systemer med delt minne.
Lokalitet: Prosessorer kan raskt få tilgang til sitt eget lokale minne
Feiltoleranse: Distribuerte minnesystemer kan være mer feiltolerante, siden en feil i en prosessors minne ikke nødvendigvis påvirker de andre prosessorene og deres minne.
⭐️ Hva er svakhetene til multiprosessorer med delt minne?
- Minneflaskehalser
- Kompleksitet i synkronisering
- Skalerbarhetsproblemer
- Kostnad
⭐️ Hva er svakhetene til multiprosessorer med distribuert minne?
- Kommunikasjonskostnader
- Kompleksitet i programmering
- Lastbalansering
- Krevende feilhåndtering
- Skalerbarhet
⭐️ Hva er den overordnede arkitekturen til en flerkjerneprosessor?
Delt minne arkitektur, og deler typisk siste nivå hurtigbuffer (LLC) mellom kjernene
⭐️ Hver prosessorkjerne i en flerkjerneprosessor har typisk to nivåer med
private hurtigbuffer
⭐️ Nivå 1 i en flerkjerneprosessor er
nærmest prosessorkjernen og liten
⭐️ Hvorfor er nivå 1 i en flerkjerneprosessor nærmest prosessorkjernen og liten?
For å få ned trefftiden
⭐️ Nivå 2 i en flerkjerneprosessoer er større enn
Nivå 1
⭐️ Bom i siste nivå hurtigbuffer (LLC) i en flerkjerneprosessor går til
minnekontrollerne, som tar seg av lesing og skriving til hovedminnet (DRAM)
⭐️ Hvorfor er synkronisering nødvending?
Enkelt ting må utføres i rekkefølge (synkroniseres), denne delen av koden kalles den kritiske seksjonen
⭐️ Hvordan implementeres synkronisering?
- Først lese, så skrive til en minnelokasjon og kunne garantere at ingenting har skjedd mellom leseoperasjonen og skriveoperasjonen
- Implementeres med “load reserved” og “store conditional”
Synkronisering
Prosessen av å koordinere oppførselen til to eller flere prosessorer, som kan kjøre på forskjellige prosessorer
Kritiske seksjonen av kode
Den delen av koden som må synkroniseres / utføres i rekkefølge
⭐️ Hva går behovet for at hurtigbuffere må holdes koherente ut på?
Alle prosessorer må se operasjoner på samme dataelement i samme rekkefølge
⭐️ Hvordan løses behovet for å holde hurtigbuffere koherente?
Ved å ha maskinvarestøtte som garanterer at alle prosessorer ser på operasjoner på samme dataelement i samme rekkefølge
⭐️ Hva går minnekonsistensproblemet ut på?
Regler for de lovlige rekkefølgene på operasjoner til ulike dataelement
⭐️ Hvordan løses minnekonsistensproblemet?
Maskinen passer på at bare lovlige rekkefølger oppstår vha. konsistensprotokoller
⭐️ Snooping
Alle prosessorer overvåker (snooper) en felles buss for å holde oversikt over endringer i minnet. Når en prosessor skriver til minnet, oppdateres eller invalides kopiene i andre prosessorers cache.