Presentation laddar. Vänta.

Presentation laddar. Vänta.

Flynns taxonomi ● Single Instruction, Single Data (SISD) – en instruktion i taget opererar på ett värde i taget ● Single Instruction, Multiple Data (SIMD)

Liknande presentationer


En presentation över ämnet: "Flynns taxonomi ● Single Instruction, Single Data (SISD) – en instruktion i taget opererar på ett värde i taget ● Single Instruction, Multiple Data (SIMD)"— Presentationens avskrift:

1 Flynns taxonomi ● Single Instruction, Single Data (SISD) – en instruktion i taget opererar på ett värde i taget ● Single Instruction, Multiple Data (SIMD) – en instruktion i taget opererar på en hel matris ● Multiple Instruction, Multiple Data (MIMD) – flerprocessorsystem, flera programräknare ● Multiple Instruction, Single Data (MISD) – funktionsenheter i kedja, alla värden passerar alla?

2 Single Instruction, Single Data ● SISD ● Kör en instruktion i taget, som opererar på ett värde i taget ● Den gamla vanliga sortens datorer

3 Single Instruction, Multiple Data ● SIMD ● Kör en instruktion i taget, som opererar på en hel matris ● Superdatorer från Thinking Machines (ca 1985) ● Vektorinstruktioner – MMX, 3Dnow, SSE,... – mycket begränsade små SIMD-beräkningar

4 Multiple Instruction, Multiple Data ● MIMD ● Flerprocessorsystem ● Flera fullständiga processorer med varsin programräknare ● Kommunicerar ofta med delat minne ● System med fler än cirka 10 processorer har snabbt datanät mellan processorerna ● Hyper-Threading är MIMD i en processorkrets – två processorer, som delar alla funktionsenheter

5 Multiple Instruction, Single Data ● MISD ● funktionsenheter i kedja, där alla beräkningar ska passerar alla funktionsenheter? ● hittills finns ingen kommersiellt tillgänglig MISD-dator

6 Dagens trend – MIMD ● Utbyggbart – en, två, tre eller flera processorer – samma operativsystem, samma program ● Flexibelt – prestandadator för en användare, – eller serverdator för hundratals användare, – eller något mellanting ● Kan byggas av standardkomponenter – mikroprocessorer från butiken på hörnet

7 Vad gör multiprocessorn? ● En ensam processor kör flera processer ● En process är – ett program, – programmets data, – programräknarinnehåll, registerinnehåll, – systeminformation om öppna filer, – med mera ● Multiprocessorsystemet kan köra processerna på varsin processor

8 Trådar ● Processer har varsin adressrymd, trådar delar på en och samma adressrymd ● En eller flera trådar ingår i en process ● En tråd är – en kodsnutt – ett programräknarinnehåll, registerinnehåll – resten hör till processen där tråden ingår ● Förvirring numera – thread ett modeord

9 Delat minne (shared memory)

10 Delat minne ● Implicit kommunikation med Load och Store ● Varje processor kan ha eget cacheminne ● Primärminnet hör inte till någon processor, utan är en gemensam resurs ● Snabb kommunikation processor–minne ● Överföringstiden är oberoende av vilka processorer som kommunicerar ● Lätt att skriva program för ● Primärminnet och dess buss är en viktig flaskhals i detta slags dator

11 Message-passing

12 ● Explicit kommunikation med Send och Receive ● Varje processor har eget minne ● Processorerna kommunicerar med datanät – mycket snabbare än LAN – kan vara byggt som ett rutnät (LAN är en buss) ● Långsammare kommunikation än delat minne ● Överföringstiden beror på vilka två processorer i nätet som kommunicerar ● Krångligare att skriva program för

13 Message-passing + bibliotek ● Ett datorsystem med message-passing kan programmeras som om det hade delat minne ● Ett programbibliotek gör om Load och Store från/till delade minnet (som ju inte finns på riktigt) så att Load och Store skickar meddelanden ● Överföringstiderna fortfarande beroende på vilka processorer som kommunicerar ● Programmeraren får det lättare

14 Problem med multiprocessorer ● Alla problem är inte parallelliserbara ● Kommunikation i multiprocessorsystem tar tid

15 Delat minne och cacheminne ● Cacheminne krånglar till det ● Uppdelning i privata och delade variabler ● Privat variabel – används bara av en processor – kan vara i cacheminne utan särskilda åtgärder ● Delad variabel – används av flera olika processorer, som kommunicerar med hjälp av variabeln – måste synkroniseras så att alla cacheminnen har samma värde på variabeln!

16 Synkronisering av cacheminnen ● Coherence – vilka värden kan Load returnera? ● Consistency – när kan ett skrivet värde läsas? ● Snooping – cacheminnet kollar på bussen – varje minnesreferens jämförs med adresslapparna – om någon frågar efter minnesadresser där cachen har senaste värdet, så levererar cachen sitt värde – om någon skriver minnesadresser som cachen har en kopia av, så invaliderar cacheminnet sin kopia ● Ny sorts cachemiss – coherency miss

17 Coherence – vilka värden kan Load returnera? ● Om en processor har skrivit i en minnescell, så ska processorn kunna läsa samma värde i cellen (om ingen annan skrivit ett nytt värde sedan dess) ● Om en processor har skrivit i en minnescell, så ska en annan processor kunna läsa nya värdet ● Flera skrivningar till en och samma minnescell ska synas i samma ordning på alla processorer

18 Consistency – när kan ett skrivet värde läsas? ● Sequential consistency – Alla skrivningar och läsningar sker i en ordning som är samma för alla processorer, långsamt ● Relaxed consistency – Olika processorer kan få se olika ordning i vissa fall, höjer prestanda ● Proc2:B = 0;... B = 1; if( A == 0 )... ● Proc1:A = 0;... A = 1; if( B == 0 )...

19 In- och utmatning (I/O) ● Skivminnen (hårddiskar) ● Optiska skivor (CD och DVD) ● Magnetband ● Bandautomater ● Flashminne (blixtminne) ●...och så bussar för att ansluta alltihop!

20 Skivminnen (alias hårddiskar)

21 Skivminnets åtkomsttid, i delar ● Söktid (seek time) – tiden för läshuvudena att flytta sig till rätt cylinder ● Rotationsväntetid (rotational delay) – tiden tills rätt sektor snurrat fram under läshuvudet ● Överföringstid (transfer time) – medan rätta sektorn passerar under läshuvudet ● Fördröjning i styrkretsar (controller overhead) – medan styrenheten hanterar kommandon och sånt ●...och ibland: kötid (queuing delay) – väntetid tills skivminnet blir ledigt

22 Flashminne (blixtminne) ● Elektriskt raderbart läsminne ● Skrivning/läsning i stora block (t ex 64 kbyte) ● Organiserat som länkad lista av block ● Krånglig ändring av blockinnehåll – kopiera gamla innehållet till ett nytt block – skriv nytt innehåll – länka om lista

23 ...och så bussar för att ansluta alltihop! ● Synkron buss – med klocksignal – alla enheter på bussen har samma klockfrekvens ● Split-transaction-buss – speciell synkron buss med pipelining – beställning (request) separeras från dataöverföring ● Asynkron buss – utan klocksignal – enkel och flexibel – klarar olika snabba enheter på samma buss

24 Vilken är buss- kabeln?

25 I/O-bussar ● SCSI (Small Computer Systems Interface) – hårddiskar till Macintosh och Sparc – bildläsare – används idag mest i server-datorer ● USB (Universal Serial Bus) – ser ut som ett träd, inte som en buss, eftersom varje kopplingspunkt måste ha elektronik


Ladda ner ppt "Flynns taxonomi ● Single Instruction, Single Data (SISD) – en instruktion i taget opererar på ett värde i taget ● Single Instruction, Multiple Data (SIMD)"

Liknande presentationer


Google-annonser